AOQML Library

Aus AntamarWiki
Wechseln zu: Navigation, Suche

Die Bibliothek (library) stellt einige spezielle Funktionen für alle Questautoren und ZB-Schreiber zur Verfügung.

Kleinere / Simplere Elemente werden als "CodeSnippets" bezeichnet und verfügen über eine eigene Sammlung.

Jeder Autor kann sich bei Bedarf aus der Bibliothek bedienen.

AOQML Library - Sammlung von Instrumenten

Zählung der selektierten Helden und Aufzählung der selektierten Helden

Die hier vorgestellten Routinen werden ausschließlich für Gruppen eingesetzt.

Wenn du die Anzahl der gerade selektierten Helden zählen willst oder eine hübsche Aufzählung der selektierten Helden - mit Komma und 'und' am Ende - haben willst, dann schreibst du einmalig zu Beginn deiner Quest oder ZB:

<include target="/lib/_heldenaufzaehlung"/>

Um die selektierten Helden zu zählen:

<replay name="AOQML_Bibliothek_zsh"/>

Ergebnis-Variablen: - AOQML_Bibliothek_ash (scope="quest") Anzahl der selektierten Helden

Um eine schöne Heldenaufzählung der echten Namen zu bekommen:

<replay name="AOQML_Bibliothek_heldenaufzaehlung"/>

Sind Alrik, Kirla und Rikal selektiert liefert die Methode Alrik, Kirla und Rikal, sind nur Alrik und Kirla selektiert, liefert sie Alrik und Kirla, ist nur Alrik selektiert liefert sie nur Alrik.

Um eine schöne Heldenaufzählung der falschen Namen zu bekommen:

<replay name="AOQML_Bibliothek_heldenaufzaehlung_nick"/>

Die Ausgabe entspricht schematisch derjenigen der Aufzählung der echten Namen.

Beispiel

Ein einfaches Beispiel. Die Helden laufen vor einem Wiesel davon.

<include target="/lib/_heldenaufzaehlung"/>
<challenge talent="Athletik" hero-quantity="all">
  <success>
    <p>Das Wiesel zerrt euch nicht in seinen Bau.</p>
  </success>
  <failure select-heroes="true">
    <replay name="AOQML_Bibliothek_zsh"/>
    <p><replay name="AOQML_Bibliothek_heldenaufzaehlung"/> <if name="AOQML_Bibliothek_ash" equals="1" then="wurde" else="wurden"/> von dem Wiesel in seinen Bau gezerrt.</p>
  </failure>
</has>

Geldbetrag von Held/Heldengruppe einziehen

Wenn du von einer Heldengruppe einen Geldbetrag einziehen willst, der von soweit möglich von allen zu gleichen Teilen getragen werden soll, ist das wie folgt möglich. Das funktioniert auch mit einem Solo-Helden.

 <set name="lib-geldausgabeteilen-sollbetrag" scope="scene" value="200"/>
 <include target="/lib/geldausgabeteilen"/>
 <switch name="lib-geldausgabeteilen-restbetrag">
     <case min="1">
         <p>Zwar habt ihr nur <get name="lib-geldausgabeteilen-zahlbetrag"/> zahlen können,
            aber zum Glück bleibt es unbemerkt, dass ihr statt der fehlenden
            <get name="lib-geldausgabeteilen-restbetrag"/>
            ein paar Knöpfe anstatt klingender Münzen übergeben habt.
            </p>
     </case>
  </switch>

Dem Helden bzw. all Helden einer Gruppe wird ein Gesamtbetrag abgezogen. Der tatsächliche Zahlbetrag und der Restbetrag wird in je einer Variable zurückgegeben.

Bei einer Gruppe wird der Betrag möglichst gleichmäßig auf die Helden verteilt wird. Können einzelne Helden ihren Anteil nicht tragen, muss dieser von anderen Helden übernommen werden.

Bei einem Einzelhelden zahlt dieser soviel wie er hat.

Input-Variable:

- lib-geldausgabeteilen-sollbetrag
      Die zu zahlende Gesamtsumme.

Ergebnis-Variablen:

- lib-geldausgabeteilen-zahlbetrag (scope="scene")
    der tatsächlich bezahlte Betrag als positive Zahl
- lib-geldausgabeteilen-restbetrag (scope="scene") 
    die Differenz zum Sollbetrag als positive Zahl