AOQML für Fortgeschrittene

Aus AntamarWiki
Wechseln zu: Navigation, Suche


Diese Seite ist Teil 2 von AOQML für Anfänger. Ich versuche hier, diverse nützliche Tipps & Tricks für AOQML möglichst verständlich zu erklären. Sie sind in keiner besonderen Reihenfolge geordnet und dürften wohl niemals vollständig sein. Offizielle Anleitung bleibt aber das AOQML-Manual!

Wichtig: AOQML wird laufend weiter entwickelt. Daher kann es immer wieder vorkommen, dass bestimmte hier vorgestellte Programmteile oder Vorgehensweisen nicht mehr funktionieren. In diesem Fall bitte ich, das anzumerken oder bei vorhandener Sachkunde selber zu korrigieren.

Neonix

EP und Beute

Zum Anfang mal ein viel diskutiertes Thema, das allerdings nicht direkt mit AOQML zu tun hat: Wie viel Beute und wie viele EP sollen die SC erhalten?

Generelle Regeln gibt es dafür nicht. Ich orientiere mich in etwa an folgenden Stichpunkten für die EP-Vergabe:

  • Unbedeutende ZB ohne Risiko oder Herausforderung bringen 0 bis 2 EP.
  • Harmlose ZB mit mindestens einer Probe bringen 1 bis 5 EP.
  • Gefährliche ZB, bei denen man viele LP oder gar Ausrüstung verlieren kann, bringen 5 bis 20 EP.
  • Richtig harte ZB für hochstufige SC entsprechend mehr.
  • Auch misslungene Proben bringen 1 bis 2 EP - immerhin lernt man aus Fehlern.
  • Bei Kämpfen vergebe ich im Falle einer Niederlage ca. 20% und bei Flucht ca. 10% der EP eines Sieges.
  • Questen bringen deutlich mehr EP als ZB, da der Spieler aktiv mitmischt. Kleine Questen dürfen durchaus 10 bis 50 EP bringen, richtig große auch viel mehr.
  • Bei besonders dummen Entscheidungen der Spieler darf man gerne auch mal 0 EP vergeben.

Beute ist schwieriger zu verteilen als EP, da sie eher vom logischen Zusammenhang als der Schwierigkeit der ZB oder Queste abhängt. Auch härteste Aufgaben bringen vielleicht keinen Groschen, während so mancher Schatz mit geringen Mühen erbeutet wird. Generell sollte sich aber reisen und Abenteuer erleben wenigstens so sehr lohnen, wie in der Stadt arbeiten. Daher bin ich gerade bei Questen ziemlich großzügig. Es macht das Spiel nicht kaputt, für eine Queste, die nur einmal gespielt werden kann, einige hundert oder gar etliche tausend Gulden zu vergeben. Neben Geld bieten sich vor allem auch besondere, wertvolle oder seltene Gegenstände als Beute an, denn Spieler freuen sich viel mehr über einen solchen Schatz (auch wenn er dann später im Lagerhaus verstaubt) als über Gulden, die sie auch durch Arbeit, Handel oder dergleichen erlangen können.

Quest-Startbedingungen

Dies ist zwar nicht AOQML per se, aber sollte bei der Programmierung Beachtung finden. Neben den nützlichen Abfragen, z.B. nach Geschlecht oder Jahreszeit (siehe CodeSnippets) gibt es noch eine ganze Reihe an Möglichkeiten, das Auftreten von ZB's oder Questen vorherzubestimmen. Ein guter Überblick darüber findet sich zudem hier.

Dies legt man aber nicht im Quelltext an, sondern kann beim Implementieren festgelegt werden. Diese Variante ist einfacher für den Schreiber und sogar noch performanter für das System. Aufgrund deiner Kommentierung/Beschreibung, kann berücksichtigt werden:

In Städten

  • die Größe der Stadt (Einwohnergrenzen)
  • Örtlichkeiten in einer Stadt (Straße/Taverne/Händler/Hafen/Wegweiser)
  • die Qualität einer Taverne

Auf Reisen

  • Handelszone
  • Vegetation
  • Wegklasse
  • Weg (zwischen Ort1 und Ort2)
  • Ort
  • Staat
  • Staatgruppe

Allgemein

  • der Ruhm des Helden
  • Bestimmte Stufenabschnitte (Level 1-20, ...)
  • Variable (der Held muss eine bestimmte Variable besitzen, damit die Quest starten darf -> einfach in der start.xml vermerken, der Quest-Einbauer wird dies berücksichtigen)

CodeSnippets - AOQML für Faulpelze

Wer nicht jeden Kleinkram selber schreiben möchte, kann auch halbfertige Programmteile aus der Seite CodeSnippets kopieren und mit eigenen Inhalten füllen.

Licht und Beleuchtungsmittel

Kommt noch...

Charaktere verletzen oder heilen

Kommt noch...

Charaktere an andere Orte versetzen

Um Charaktere an einen anderen Ort zu versetzen, wird der AOQML-Befehl set benutzt und zwar in Kombination mit dem Attribut site, welches als Wert den Namen des Zielortes erwartet. Ein Beispiel:

<set attribute="site" val="Eisentrutz"/>

Eine etwaig gerade laufende Reise wird in diesem Fall abgebrochen und der Held findet sich sofort in Eisentrutz wieder. Grundsätzlich gilt, dass diese Funktion nur in sehr seltenen Fällen angewandt werden soll, um Missmut zu vermeiden, falls jemand gerade speziell auf der Suche nach etwas unterwegs war oder auf dem Weg zu seiner RP-Gruppe.

Man kann Helden allerdings nicht nur an bestimmte Orte versetzen, sondern auch auf Reisen schicken. Dazu wird der AOQML-Befehl travel benutzt, bei dem der Zielort und die Reisedauer festgelegt werden kann. Dies funktioniert jedoch nur eingeschränkt für Strecken, die tatsächlich existieren. Wenn man aber die Queste nicht unterbrechen möchte, sondern den Helden aus der Queste heraus reisen lassen will, ist das die bevorzugte Methode.

Ausrüstung benutzen

Kommt noch...

ZB und Questen mit "Gedächtnis"

Kommt noch...

Ortsfeste Questen

Ortsfeste Questen sind dadurch gekennzeichnet, dass ein Spieler sie jederzeit in einer Stadt durch das Klicken auf einen Link abrufen kann. In der Regel findet sich ein solcher Link in der Kategorie Anderes, sie können aber auch anderswo verankert werden.

Die Möglichkeiten dazu sehen wie folgt aus: Anderes, Händler, Taverne, Kampfschule/Lehrmeister, Arena, Bank.

Zusätzlich können auch kleine, passende Icons hinzugefügt werden, die dann links vor dem Linktext stehen, welcher selbst variabel ist. Alte Hütte geht genauso wie Sehenswürdigkeit oder Eine zwielichtige "Bank".

Weiterhin besteht die Möglichkeit, ortsfeste Questen nur dann einzublenden, wenn ein gewisser Marker, also eine Variable, am Helden vorhanden ist (wobei der Inhalt keine Rolle spielt). Durch diese Mechanik ist es zudem möglich, den Namen einer ortsfesten Queste zu ändern. Ein Beispiel:

  1. Eine ZB geht auf und startet die Queste, dabei wird die Variable Autor-Questname-Eins an den Helden gebunden. Dadurch kann er nun in Stadt Testville unter anderes den Link Eine alte Hütte am Stadtrand sehen.
  2. Besucht der Held nun diese alte Hütte, löschen wir die Variable Autor-Questname-Eins wieder und speichern am Helden stattdessen die Variable Autor-Questname-Zwei.
  3. Wenn der Held jetzt die Quest verlässt und wieder in der Stadt nach dem Questort sucht, kann er nun zum Beispiel Radagastus versteckter Palast lesen. Man weiß ja jetzt, um was es sich dort handelt.

Diese Informationen zu den Variablen und wie die ortsfeste Queste angezeigt werden soll, müssen in jedem Fall in der start.xml der entsprechenden Queste verankert werden, damit sie bei der Implementierung entsprechend umgesetzt werden können.

Möchte man, dass der Ort nicht weiter zu besuchen ist, wenn die Queste beendet wurde, muss in jedem Fall auch daran gedacht werden, die Variablen am Ende zu löschen. Damit sind die Questen für den Helden nicht mehr zu erreichen.

Benutzbare Gegenstände

Kommt noch...

ZB und Questen an das Geschlecht anpassen

Kommt noch...

Verbesserte Zufallsverteilung

Kommt noch...

EP während einer Queste sammeln

Kommt noch...

ZB und Questen an die Stufe des Helden anpassen

Kommt noch...

Bilder einbinden

siehe Seite Bilder einbinden