AOQML für Fortgeschrittene: Unterschied zwischen den Versionen

Aus AntamarWiki
Wechseln zu: Navigation, Suche
(Quest-Startbedingungen)
 
(9 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 9: Zeile 9:
 
==EP und Beute==  
 
==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?  
+
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''':
 
Generelle Regeln gibt es dafür nicht. Ich orientiere mich in etwa an folgenden Stichpunkten für die '''EP-Vergabe''':
Zeile 22: Zeile 22:
  
 
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.  
 
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 [[Implementierung_(Spielinhalte)|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==  
 
==CodeSnippets - AOQML für Faulpelze==  
Zeile 37: Zeile 60:
 
==Charaktere an andere Orte versetzen==  
 
==Charaktere an andere Orte versetzen==  
  
Kommt noch...
+
Um Charaktere an einen anderen Ort zu versetzen, wird der AOQML-Befehl [[Set|''set'']] benutzt und zwar in Kombination mit dem [[Heldattribute|Attribut]] ''site'', welches als Wert den Namen des Zielortes erwartet. Ein Beispiel:
 +
 
 +
<code xml n>
 +
<set attribute="site" val="Eisentrutz"/>
 +
</code>
 +
 
 +
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|''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==  
 
==Ausrüstung benutzen==  
Zeile 49: Zeile 80:
 
==Ortsfeste Questen==  
 
==Ortsfeste Questen==  
  
Kommt noch...
+
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 [[Store fetch|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:
 +
 
 +
# 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.
 +
# 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''.
 +
# 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==  
 
==Benutzbare Gegenstände==  
Zeile 72: Zeile 117:
  
 
==Bilder einbinden==  
 
==Bilder einbinden==  
 
+
siehe Seite [[Bilder einbinden]]
Geht mit Hilfe des img-Tag:
 
&lt;img src="bilder/quests/streunerin.jpg" title="Die Streunerin weist den Weg" alt="Die Streunerin weist den Weg" style="float: right;" /&gt;
 
 
 
Dies entspricht diesem [http://spiel.antamar.org/Antamar/bilder/quests/streunerin.jpg Bild]
 
 
 
Eine Schwierigkeit gibt es: es duerfen nur Bilder aus Antamar verwendet werden, damit niemals Copyright-Verstoesse erfolgen koennen!
 
Der Ordner bilder/quests ist allerdings nicht oeffentlich sichtbar, deshalb hier eine kleine Auswahl:
 
* [http://spiel.antamar.org/Antamar/bilder/quests/2_wegelagerer.gif 2_wegelagerer.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/DungeonFackelTreppe.jpg DungeonFackelTreppe.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/SchlossknackenTuer240x160.gif SchlossknackenTuer240x160.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/Tempel-Becken.png Tempel-Becken.png]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/Tempel-Grabkammer.png Tempel-Grabkammer.png]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/Tempel-Kreuzung.png Tempel-Kreuzung.png]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/Tempel.png Tempel.png]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/betrunkener_kaufmann.jpg betrunkener_kaufmann.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/buettel.gif buettel.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/eiche.jpg eiche.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/einhorn.gif einhorn.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/fisch_im_bach.jpg fisch_im_bach.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/gardistenhauptmann.jpg gardistenhauptmann.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/goblin_mit_gold_zb.gif goblin_mit_gold_zb.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/groschensack_zb.gif groschensack_zb.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/hauptmann.gif hauptmann.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/holzfaeller.gif holzfaeller.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/kampf_mann_frau.gif kampf_mann_frau.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/kiste_zb.gif kiste_zb.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/kisten.png kisten.png]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/kriegsoger.gif kriegsoger.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/lagerfeuer.jpg lagerfeuer.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/leiche_fliegenschwarm.gif leiche_fliegenschwarm.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/magierturm.jpg magierturm.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/mann_am_feuer_zb.gif mann_am_feuer_zb.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/navigation.png navigation.png]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/nordahejmr.jpg nordahejmr.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/nordahejmr_gruppe.gif nordahejmr_gruppe.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/ochsengespann.png ochsengespann.png]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/oger_starkfaust.gif oger_starkfaust.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/ork_bogen_zb1.jpg ork_bogen_zb1.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/ork_bogen_zb2.jpg ork_bogen_zb2.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/ork_bogen_zb3.jpg ork_bogen_zb3.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/reisegruppe_feuer.gif reisegruppe_feuer.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/schatzkarte-madasee.png schatzkarte-madasee.png]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/schlaefer.jpg schlaefer.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/schloss_knacken1.gif schloss_knacken1.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/schmied.gif schmied.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/skelett1.gif skelett1.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/skelett2.gif skelett2.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/skelett3.gif skelett3.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/steinhuette.gif steinhuette.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/steinschlag_zb1.gif steinschlag_zb1.gif]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/steinschlag_zb2.jpg steinschlag_zb2.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/steinschlag_zb3.jpg steinschlag_zb3.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/streunerin.jpg streunerin.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/wasser_im_boot.jpg wasser_im_boot.jpg]
 
* [http://spiel.antamar.org/Antamar/bilder/quests/zwergengruppe_zb.jpg zwergengruppe_zb.jpg]
 

Aktuelle Version vom 6. März 2015, 21:59 Uhr


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