AOQML für Fortgeschrittene: Unterschied zwischen den Versionen
Neonix (Diskussion | Beiträge) |
Cvk (Diskussion | Beiträge) (→Quest-Startbedingungen) |
||
(16 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | [[Kategorie:AOQML]] | ||
+ | |||
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]]! | 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]]! | ||
Zeile 7: | Zeile 9: | ||
==EP und Beute== | ==EP und Beute== | ||
− | Zum Anfang mal ein viel diskutiertes Thema, das allerdings nicht direkt mit | + | 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 20: | 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 35: | Zeile 60: | ||
==Charaktere an andere Orte versetzen== | ==Charaktere an andere Orte versetzen== | ||
− | + | 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 47: | Zeile 80: | ||
==Ortsfeste Questen== | ==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 [[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 70: | Zeile 117: | ||
==Bilder einbinden== | ==Bilder einbinden== | ||
− | + | siehe Seite [[Bilder einbinden]] | |
− |
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
Inhaltsverzeichnis
- 1 EP und Beute
- 2 Quest-Startbedingungen
- 3 CodeSnippets - AOQML für Faulpelze
- 4 Licht und Beleuchtungsmittel
- 5 Charaktere verletzen oder heilen
- 6 Charaktere an andere Orte versetzen
- 7 Ausrüstung benutzen
- 8 ZB und Questen mit "Gedächtnis"
- 9 Ortsfeste Questen
- 10 Benutzbare Gegenstände
- 11 ZB und Questen an das Geschlecht anpassen
- 12 Verbesserte Zufallsverteilung
- 13 EP während einer Queste sammeln
- 14 ZB und Questen an die Stufe des Helden anpassen
- 15 Bilder einbinden
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:
- 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
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