AOQML-Bibliothek

XML-Variante AOQML, ihre Möglichkeiten, Ergänzungen und Entwicklung...

Moderatoren: Ratsgruppe Programmierer, A-Team

AOQML-Bibliothek

Beitragvon Trokhanor » Fr 20 Nov, 2015 13:44

Da sich drei Routinen zunehmender Beliebtheit erfreuen und in kurzer Zeit gleich zweifach der fettgedruckte Hinweis überlesen wurde: Es wird Zeit, die ordentlich einzubinden!

Heldenzählung und Heldenaufzählung
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.

Code: Alles auswählen
<include target="/lib/_heldenaufzaehlung"/>


Um die selektierten Helden zu zählen:
Code: Alles auswählen
<replay name="AOQML_Bibliothek_zsh/>
<p>Es sind <fetch name="AOQML_Bibliothek_ash"/> Helden selektiert.


Ergebnisvariablen:
AOQML_Bibliothek_ash - Anzahl der selektierten Helden

Um eine schöne Heldenaufzählung der echten Namen zu bekommen:
Code: Alles auswählen
<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:
Code: Alles auswählen
<replay name="AOQML_Bibliothek_heldenaufzaehlung_nick/>


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

Code: Alles auswählen
<retain name="AOQML_Bibliothek_zsh" id="AOQML_Bibliothek_zaehle_selektierte_helden">
  <store name="AOQML_Bibliothek_ash">0</store>
  <for all="${sys:selected-heroes}" name="AOQML_Bibliothek_held_id">
    <set name="AOQML_Bibliothek_ash" inc="1" show="none"/>
  </for>
</retain>


Routine für die Auifzählung der echten Namen:
Code: Alles auswählen
<!-- Die nachfolgende Routine ist in einer Zeile, da sonst ungewollte Leerzeichen ausgegeben werden können. Code bitte nicht umbrechen oder Leerzeichen einfügen! -->
<!-- Zunächst gibt es eine eigene Heldenzählung. -->
<retain name="AOQML_Bibliothek_heldenaufzaehlung" id="AOQML_Bibliothek_heldenaufzaehlung"><store name="AOQML_Bibliothek_heldenaufzahlung_selektiert" scope="hero">ja</store><store name="AOQML_Bibliothek_heldenaufzaehlung_ash" scope="scene">0</store><for all="${sys:selected-heroes}" name="AOQML_Bibliothek_held_id"><set name="AOQML_Bibliothek_heldenaufzaehlung_ash" inc="1" scope="scene" show="none"/></for><store name="AOQML_Bibliothek_heldenaufzaehlung_zaehler" scope="scene">0</store><for all="${sys:selected-heroes}" name="AOQML_Bibliothek_held_id"><select hero="${AOQML_Bibliothek_held_id}"/><store name="AOQML_Bibliothek_heldenaufzaehlung_differenzwert" scope="scene"><eval><fetch name="AOQML_Bibliothek_heldenaufzaehlung_ash"/>-<fetch name="AOQML_Bibliothek_heldenaufzaehlung_zaehler"/></eval></store><switch name="AOQML_Bibliothek_heldenaufzaehlung_differenzwert"><case val="${AOQML_Bibliothek_heldenaufzaehlung_ash}"><get attribute="name"/></case><case val="1"> und <get attribute="name"/></case><else>, <get attribute="name"/></else></switch><set name="AOQML_Bibliothek_heldenaufzaehlung_zaehler" inc="1" scope="scene" show="none"/></for><select by-name="AOQML_Bibliothek_heldenaufzahlung_selektiert" val="ja"/><store name="AOQML_Bibliothek_heldenaufzahlung_selektiert" scope="hero"/></retain>


Und für die falschen Namen:
Code: Alles auswählen
<!-- Die nachfolgende Routine ist in einer Zeile, da sonst ungewollte Leerzeichen ausgegeben werden können. Code bitte nicht umbrechen oder Leerzeichen einfügen! -->
<!-- Zunächst gibt es eine eigene Heldenzählung. -->
<retain name="AOQML_Bibliothek_heldenaufzaehlung_nick" id="AOQML_Bibliothek_heldenaufzaehlung_nick"><store name="AOQML_Bibliothek_heldenaufzahlung_selektiert" scope="hero">ja</store><store name="AOQML_Bibliothek_heldenaufzaehlung_ash" scope="scene">0</store><for all="${sys:selected-heroes}" name="AOQML_Bibliothek_held_id"><set name="AOQML_Bibliothek_heldenaufzaehlung_ash" inc="1" scope="scene" show="none"/></for><store name="AOQML_Bibliothek_heldenaufzaehlung_zaehler" scope="scene">0</store><for all="${sys:selected-heroes}" name="AOQML_Bibliothek_held_id"><select hero="${AOQML_Bibliothek_held_id}"/><store name="AOQML_Bibliothek_heldenaufzaehlung_differenzwert" scope="scene"><eval><fetch name="AOQML_Bibliothek_heldenaufzaehlung_ash"/>-<fetch name="AOQML_Bibliothek_heldenaufzaehlung_zaehler"/></eval></store><switch name="AOQML_Bibliothek_heldenaufzaehlung_differenzwert"><case val="${AOQML_Bibliothek_heldenaufzaehlung_ash}"><get attribute="name"/></case><case val="1"> und <get attribute="nick"/></case><else>, <get attribute="nick"/></else></switch><set name="AOQML_Bibliothek_heldenaufzaehlung_zaehler" inc="1" scope="scene" show="none"/></for><select by-name="AOQML_Bibliothek_heldenaufzahlung_selektiert" val="ja"/><store name="AOQML_Bibliothek_heldenaufzahlung_selektiert" scope="hero"/></retain>
Trokhanor
Ritter
Ritter
 
Beiträge: 657
Registriert: Mo 02 Mär, 2009 20:07
Heldenname: Lorenzo di Avarra

Re: AOQML-Bibliothek

Beitragvon Gaddezwerch » Fr 20 Nov, 2015 14:03

Moment mal ...
"_heldenaufzaehlung" haben wir noch gar nicht in der Library.
Hab ich was verpasst?
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 5133
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: AOQML-Bibliothek

Beitragvon cvk » Fr 20 Nov, 2015 14:05

Ich glaub er möchte, dass wir sie anlegen, damit dieses komplexe Monstrum im Hintergrund verschwindet.
"[T]he Land of Antamar, where freedom reigns for all."
Beatty, Susi; Gunter, Kery: Angie the Ant and the Bumblebee Tree. O.O., o.V., 2005.
Benutzeravatar
cvk
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 3350
Registriert: Fr 13 Jul, 2012 16:10
Heldenname: Lunarias Mondenweh

Re: AOQML-Bibliothek

Beitragvon Gaddezwerch » Fr 20 Nov, 2015 14:08

Ok, also alles das was sich unter --- befindet, hab ich das richtig verstanden Trokhanor?
Interessehalber: Wo wird es denn bisher verwendet?
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 5133
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: AOQML-Bibliothek

Beitragvon Trokhanor » Fr 20 Nov, 2015 14:15

Verwendung finden die Routinen bislang in wenigstens fünf Questen (Barilasch 07, 11, Bartumurmeltier, Kuolemas Charukinquest, Talkmars Kopfjäger) sowie haufenweise GZB im Wiki. "Altlasten" müssen aber nicht überarbeitet werden, denke ich.

Ja, die drei letzten Codeblöcke unter dem "----" sind die Quelltexte, die sollen in der Bibliothek landen. Der Rest ist ein Dokumentationsvorschlag für das Wiki.
Trokhanor
Ritter
Ritter
 
Beiträge: 657
Registriert: Mo 02 Mär, 2009 20:07
Heldenname: Lorenzo di Avarra

Re: AOQML-Bibliothek

Beitragvon Pergor » Fr 20 Nov, 2015 14:20

Eine Aufzählung der Heldennamen kann z.B. im Tagebuch ganz schön sein. Haben wir bei den "Klängen" auch gemacht. So bleibt in Erinnerung, mit wem man das Abenteuer bestritten hat. Bei uns war aber klar, dass vier Leute in der Gruppe sind an dem Zeitpunkt, an dem der Eintrag gesetzt wird, deswegen mussten wir natürlich nur ein paar mal <select hero="nr_x"/><get attribute="name"/> hintereinanderklatschen und konnten uns irgendwelche Schleifen sparen. (bliebe bloß das Problem, dass das nicht ganz zukunftssicher ist, keine Ahnung, ob es irgendwann mal mehr als vier Leute in einer Gruppe geben wird)

Aber das ist ja auch sonst im Fließtext wohl mal ganz nützlich. Wenn zwei Helden etwas übernehmen sollen, fände ich es gar nicht so schlecht, wenn man eine einfache Möglichkeit zur Namensauflistung hat. "Alrik, Alrik2 und Alrik3 versuchen blablabla, während Alrik 4 blubb". In etwas komplexeren Questen ist sowas bestimmt wohl sinnvoll. Und wird vielleicht automatisch auch mehr benutzt, wenn es dafür einen simplen Code gäbe. Aber das ist nur spekuliert. ;)
Zuletzt geändert von Pergor am Fr 20 Nov, 2015 14:22, insgesamt 1-mal geändert.
Benutzeravatar
Pergor
Oberleutnant
Oberleutnant
 
Beiträge: 1169
Registriert: Do 07 Jun, 2007 18:45
Wohnort: Turm des Magiers
Heldenname: inaktiv

Re: AOQML-Bibliothek

Beitragvon Gaddezwerch » Fr 20 Nov, 2015 14:21

Ok ist jetzt live.
Pass bitte noch das Wiki an -> AOQML Library.
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 5133
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: AOQML-Bibliothek

Beitragvon Trokhanor » Fr 20 Nov, 2015 15:48

Trokhanor
Ritter
Ritter
 
Beiträge: 657
Registriert: Mo 02 Mär, 2009 20:07
Heldenname: Lorenzo di Avarra

Re: AOQML-Bibliothek

Beitragvon Hagen vH » Fr 20 Nov, 2015 20:27

Juchu! Danke! Habe das im Monat November wenigstens 5x fehlerhaft eingesetzt - und der arme Trokhanor hat es immer geduldig korrigiert.

=)
Kanzler der Charukin, aktuell aktiv für Alt-Korumand.
Hagen vH
Leutnant
Leutnant
 
Beiträge: 841
Registriert: Di 04 Feb, 2014 19:50
Heldenname: Paquadea

Re: AOQML-Bibliothek

Beitragvon Hagen vH » Fr 20 Nov, 2015 20:29

Pergor hat geschrieben:Aber das ist ja auch sonst im Fließtext wohl mal ganz nützlich. Wenn zwei Helden etwas übernehmen sollen, fände ich es gar nicht so schlecht, wenn man eine einfache Möglichkeit zur Namensauflistung hat. "Alrik, Alrik2 und Alrik3 versuchen blablabla, während Alrik 4 blubb". In etwas komplexeren Questen ist sowas bestimmt wohl sinnvoll. Und wird vielleicht automatisch auch mehr benutzt, wenn es dafür einen simplen Code gäbe. Aber das ist nur spekuliert. ;)


Kann man ja jetzt - es werden nur die Selektierten Helden ausgegeben.
Kanzler der Charukin, aktuell aktiv für Alt-Korumand.
Hagen vH
Leutnant
Leutnant
 
Beiträge: 841
Registriert: Di 04 Feb, 2014 19:50
Heldenname: Paquadea

Re: AOQML-Bibliothek

Beitragvon cvk » Sa 21 Nov, 2015 13:26

Mal rübergeholt:

Betreff: Waren Tags

Kuolema_ hat geschrieben:Ich habe mal eine Erweiterung für die Library erstellt, die Sprachabfragen bei globalen (oder zumindest überregionalen) ZB und Questen erleichtern soll. Die Idee ist, dass man künftig

1) mit der Variabel "KannSprache" abfragen kann, ob der Char die hießige Landessprache spricht (Mindestwert 8).
2) mit der Variabel "Landessprache" die hießige Landessprache anzeigen lassen kann und
3) mit ${Landessprache} Proben auf die hießige Landessprache machen kann.

Bei Gruppen wird bez. Punkt 1 abgefragt, ob zumindest ein Held die Sprache kann.

Ich hoffe, ich hab das mit der Library soweit richtig verstanden und die erleichterten Sprachabfragen helfen.
Wenn das Ganze soweit passt, würde ich dann noch eine entsprechende Wiki-Dokumentation erstellen.

Code für die Library
Code: Alles auswählen
<switch attribute="weg_von_staatenbund">


  <case val="Heiliges Kaiserreich|Kaiserreich des Südsterns|Adelsrepublik Grauland|Fürstentum Herzstein|Fürstentum Thelessa|Fürstentum Exondria|Großfürstentum des Südmeers|Herzogtum Galfar|Königreich Lothrinien|Königreich Lúnasadh|Sartogasso|Magokratie Wiesczarna">
     <store name="Landessprache">Imperial</store>
  </case>

  <case val="Nuovo Imperio Aurecciani|Königreich Westendar">
     <store name="Landessprache">Aurento</store>
  </case>

  <case val="Großsultanat Emreia|Emirat El-Ahil|Emirat Karkasso|Emirat Seydjuk|Kalifat Dorien|Sawajidden-Kalifat">
     <store name="Landessprache">Bajidai</store>
  </case>

  <case val="Godentum Nordahejmr">
     <store name="Landessprache">Nordahejmisch</store>
  </case>
 
  <case val="Orkreich">
     <store name="Landessprache">Orkisch</store>
  </case>

  <case val="Zollunion Goblinia">
     <store name="Landessprache">Goblinisch</store>
  </case>

  <case val="Aivarunenlande">
     <store name="Landessprache">Avarun</store>
  </case>

  <case val="Xetoka">
    <store name="Landessprache">Xeanhatl</store>
  </case>

  <case val="Eiskönigreich">
    <store name="Landessprache">Urelfisch</store>
  </case>

  <case val="Echsenreich">
     <store name="Landessprache">ZheeZ</store>
  </case>
 
  <case val="Shogunate">
    <store name="Landessprache">Oda</store>
  </case>

  <case val="Elfen">
    <store name="Landessprache">Elfisch</store>
  </case>

  <case val="Zwerge">
    <store name="Landessprache">Zwergisch</store>
  </case>

  <else>
     <p>Fehlermeldung. Bitte im Forum melden und angeben, von wo du wohin reist.</p>
  </else>

</switch>

<has talent="${Landessprache}" min="8" show="none" >
  <success>
     <store name="KannSprache">Ja</store>
  </success>
  <failure>
     <store name="KannSprache">Nein</store>
  </failure>
</has>


Mögliche Anwendung

Code: Alles auswählen
<switch name="KannSprache">

  <case val="Ja">
     <p>Du sprichst die hießige Landessprache <get name="Landessprache"/></p>
     <has talent="${Landessprache}" min="12" show="none" >
  <success>
    <p>Man könnte dich fast für einen Einheimischen halten.</p>
  </success>
  <failure>
    <p>Allerdings hast du einen starken Akzent.</p>
  </failure>
</has>

  </case>

  <case val="Nein">
     <p>Du sprichst die hießige Landessprache <get name="Landessprache"/> nicht.</p>
  </case>
 
</switch>
"[T]he Land of Antamar, where freedom reigns for all."
Beatty, Susi; Gunter, Kery: Angie the Ant and the Bumblebee Tree. O.O., o.V., 2005.
Benutzeravatar
cvk
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 3350
Registriert: Fr 13 Jul, 2012 16:10
Heldenname: Lunarias Mondenweh

Re: AOQML-Bibliothek

Beitragvon Gaddezwerch » Sa 21 Nov, 2015 16:10

Da auf Attribut weg_von_staatenbund geprüft wird, geht das wohl nur auf Reisen?
Die Bitte wäre das gleich so einzustellen dass es auch innerhalb von Ortschaften funktioniert.
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 5133
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: AOQML-Bibliothek

Beitragvon Kuolema_ » So 22 Nov, 2015 10:42

Anbei eine Version für Orte und für unterwegs.

Code: Alles auswählen
<store name="imperial">Heiliges Kaiserreich|Kaiserreich des Südsterns|Adelsrepublik Grauland|Fürstentum Herzstein|Fürstentum Thelessa|Fürstentum Exondria|Großfürstentum des Südmeers|Herzogtum Galfar|Königreich Lothrinien|Königreich Lúnasadh|Sartogasso|Magokratie Wiesczarna</store>

<store name="aurento">Nuovo Imperio Aurecciani|Königreich Westendar</store>

<store name="bajidai">Großsultanat Emreia|Emirat El-Ahil|Emirat Karkasso|Emirat Seydjuk|Kalifat Dorien|Sawajidden-Kalifat</store>

<switch attribute="unterwegs">
  <case val="true">
     <switch attribute="weg_von_staatenbund">

  <case val="${imperial}">
     <store name="Landessprache">Imperial</store>
  </case>

  <case val="${aurento}">
     <store name="Landessprache">Aurento</store>
  </case>

  <case val="${bajidai}">
     <store name="Landessprache">Bajidai</store>
  </case>

  <case val="Godentum Nordahejmr">
     <store name="Landessprache">Nordahejmisch</store>
  </case>
 
  <case val="Orkreich">
     <store name="Landessprache">Orkisch</store>
  </case>

  <case val="Zollunion Goblinia">
     <store name="Landessprache">Goblinisch</store>
  </case>

  <case val="Aivarunenlande">
     <store name="Landessprache">Avarun</store>
  </case>

  <case val="Xetoka">
    <store name="Landessprache">Xeanhatl</store>
  </case>

  <case val="Eiskönigreich">
    <store name="Landessprache">Urelfisch</store>
  </case>

  <case val="Echsenreich">
     <store name="Landessprache">ZheeZ</store>
  </case>
 
  <case val="Shogunate">
    <store name="Landessprache">Oda</store>
  </case>

  <case val="Elfen">
    <store name="Landessprache">Elfisch</store>
  </case>

  <case val="Zwerge">
    <store name="Landessprache">Zwergisch</store>
  </case>

  <else>
     <p>Fehlermeldung. Bitte im Forum melden und angeben, von wo du wohin reist.</p>
  </else>

</switch>

</case>

  <else>
     <switch attribute="site_staatenbund">


  <case val="${imperial}">
     <store name="Landessprache">Imperial</store>
  </case>

  <case val="${aurento}">
     <store name="Landessprache">Aurento</store>
  </case>

  <case val="${bajidai}">
     <store name="Landessprache">Bajidai</store>
  </case>

  <case val="Godentum Nordahejmr">
     <store name="Landessprache">Nordahejmisch</store>
  </case>
 
  <case val="Orkreich">
     <store name="Landessprache">Orkisch</store>
  </case>

  <case val="Zollunion Goblinia">
     <store name="Landessprache">Goblinisch</store>
  </case>

  <case val="Aivarunenlande">
     <store name="Landessprache">Avarun</store>
  </case>

  <case val="Xetoka">
    <store name="Landessprache">Xeanhatl</store>
  </case>

  <case val="Eiskönigreich">
    <store name="Landessprache">Urelfisch</store>
  </case>

  <case val="Echsenreich">
     <store name="Landessprache">ZheeZ</store>
  </case>
 
  <case val="Shogunate">
    <store name="Landessprache">Oda</store>
  </case>

  <case val="Elfen">
    <store name="Landessprache">Elfisch</store>
  </case>

  <case val="Zwerge">
    <store name="Landessprache">Zwergisch</store>
  </case>

  <else>
     <p>Fehlermeldung. Bitte im Forum melden und angeben, in welcher Stadt du bist.</p>
  </else>

</switch>
  </else>
</switch>



<has talent="${Landessprache}" min="8" show="none" >
  <success>
     <store name="KannSprache">Ja</store>
  </success>
  <failure>
     <store name="KannSprache">Nein</store>
  </failure>
</has>
Du interessierst dich für Dunkelzwerge und Krimis? Ich suche noch einen Co-Autor bzw. eine Co-Autorin für eine Kriminalqueste auf der Zitadelle von Kebiralosch. Bei Interesse -> PN.
Kuolema_
Leutnant
Leutnant
 
Beiträge: 851
Registriert: Sa 17 Dez, 2011 16:41
Wohnort: Wien
Heldenname: Kuolema
Mitglied bei: Die Hände des Schicksals

Re: AOQML-Bibliothek

Beitragvon Gaddezwerch » So 22 Nov, 2015 11:09

Ich habe es etwas modifiziert.
Bitte beachten, dass ich "ja" und "nein" klein geschrieben habe.
Frage wäre, ob man das grundsätzlich auch gruppentauglich machen könnte.

Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<scene xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://eisentrutz.antamar.eu/aoqml.xsd">

<!--
Abfragemöglichkeit, ob der Held die hiesige Landessprache beherrscht
(http://forum.antamar-community.de/viewtopic.php?p=315143#p315143)

Optionale Input-Variablen:
- LandesspracheFeW
      Falls diese Variable gesetzt ist, wird der Wert als Mindestanforderung genutzt.
      Andernfalls wird FeW 8 als Voraussetzung benutzt.

Ergebnis-Variablen:
- KannSprache         (scope="quest")
    ja                Wenn Held die hiesige Landessprache beherrscht
    nein              Wenn Held die hiesige Landessprache nicht beherrscht
- Landessprache       (scope="quest")
    Enthält die Fertigkeit (=Sprache), welche vorort die Landessprache ist
-->

<switch attribute="unterwegs">
  <case val="true">
    <store name="check_attrib" scope="scene">weg_von_staatenbund</store>
  </case>
  <else>
    <store name="check_attrib" scope="scene">site_staatenbund</store>
  </else>
</switch>

<switch attribute="${check_attrib}">
  <case val="Heiliges Kaiserreich|Kaiserreich des Südsterns|Adelsrepublik Grauland|Fürstentum Herzstein|Fürstentum Thelessa|Fürstentum Exondria|Großfürstentum des Südmeers|Herzogtum Galfar|Königreich Lothrinien|Königreich Lúnasadh|Sartogasso|Magokratie Wiesczarna">
    <store name="Landessprache">Imperial</store>
  </case>
  <case val="Nuovo Imperio Aurecciani|Königreich Westendar">
    <store name="Landessprache">Aurento</store>
  </case>
  <case val="Großsultanat Emreia|Emirat El-Ahil|Emirat Karkasso|Emirat Seydjuk|Kalifat Dorien|Sawajidden-Kalifat">
    <store name="Landessprache">Bajidai</store>
  </case>
  <case val="Godentum Nordahejmr">
    <store name="Landessprache">Nordahejmisch</store>
  </case>
  <case val="Orkreich">
    <store name="Landessprache">Orkisch</store>
  </case>
  <case val="Zollunion Goblinia">
    <store name="Landessprache">Goblinisch</store>
  </case>
  <case val="Aivarunenlande">
    <store name="Landessprache">Avarun</store>
  </case>
  <case val="Xetoka">
    <store name="Landessprache">Xeanhatl</store>
  </case>
  <case val="Eiskönigreich">
    <store name="Landessprache">Urelfisch</store>
  </case>
  <case val="Echsenreich">
    <store name="Landessprache">ZheeZ</store>
  </case>
  <case val="Shogunate">
    <store name="Landessprache">Oda</store>
  </case>
  <case val="Elfen">
    <store name="Landessprache">Elfisch</store>
  </case>
  <case val="Zwerge">
    <store name="Landessprache">Zwergisch</store>
  </case>
  <else>
    <p>Fehler bei Abfrage der Landessprache. Bitte im Forum melden und angeben, in welcher Stadt oder auf welchem Weg du bist.</p>
  </else>
</switch>

<has name="LandesspracheFeW">
  <failure>
    <store name="LandesspracheFeW" scope="scene">8</store>
  </failure>
</has>

<has talent="${Landessprache}" min="${LandesspracheFeW}" show="none">
  <success>
    <store name="KannSprache">ja</store>
  </success>
  <failure>
    <store name="KannSprache">nein</store>
  </failure>
</has>

</scene>



edit: Ansonsten steht es jetzt zur Verfügung.
Code: Alles auswählen
<include target="/lib/_landessprache" />


Jetzt auch im Wiki -> AOQML_Library#Pr.C3.BCfung_auf_Landessprache
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 5133
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: AOQML-Bibliothek

Beitragvon cvk » Mi 12 Okt, 2016 21:31

Ein Vorschlag für die Lib. Ich würde es sofort benutzen, wollte aber Meinungen zu Grenzwerten und grundsätzlicher Usability einholen. Hintergrund: bei Gruppen wenn es um RastZB geht nicht erst lang rumbasteln zu müssen, um Text variieren zu können in Zusammenhang mit der Anzahl der Verletzten. Sonstige Doku hab ich eigentlich in Kommentare geschrieben.

Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<scene xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://eisentrutz.antamar.eu/aoqml.xsd">

<!--  Diese Routine ermittelt, wieviele Gruppenmitglieder prinzipiell erschöpft oder verletzt
      sind, sodass sie als rastbedürftig in Frage kommen.
     
      Hierbei gelten folgende Grenzwerte: > 1 Wunden || > 20% Erschöpfung || < 80% LEP.
     
      Die Grenzwerte sind möglichst niedrig gewählt, da nicht vorhersehbar ist,
      wie bei einzelnen Helden die Rasteinstellungen aussehen. Um möglichst wenige Ausrutscher
      zu haben wird sehr früh als "Rastbedürftig" eingeschätzt. -->

<store name="anzahlGruppenmitgliederGesamt"><get attribute="anzahl_gruppenmitglieder" /></store>
<store name="anzahlGruppenmitgliederRastbedarf">0</store>

<switch attribute="anzahl_gruppenmitglieder">
  <case val="0">
    <!-- Wenn nur ein Held vorhanden ist, sind offiziell alle der Grund für die Rast. -->
    <set name="anzahlGruppenmitgliederRastbedarf" val="alle" show="none" />
  </case>
  <else>
    <for all="${sys:heroes}" name="heldid">
      <select hero="${heldid}"/>
      <!--  Werte zu Vergleichszwecken holen. Die Rechnungen vereinfachen die Abfragen
            Siehe obige Grenzwerte.-->

      <store name="heldErschoepfung"><get attribute="ERP" /></store>
      <store name="heldLebenspunkte"><eval>(<get attribute="LEP" /> * 1.25) + 1</eval></store>
      <store name="heldErschoepfungMaximum"><eval><get attribute="ERPmax" /> / 5</eval></store>
      <store name="heldLebenspunkteMaximum"><get attribute="LEPmax" /></store>
     
      <switch attribute="wounds">
        <case min="1">
          <set name="anzahlGruppenmitgliederRastbedarf" inc="1" show="none" />
        </case>
        <else>
          <!-- Held benötigt keine Pause aufgrund von zu vielen Wunden. -->
          <switch name="heldErschoepfung">
            <case min="${heldErschoepfungMaximum}">
              <set name="anzahlGruppenmitgliederRastbedarf" inc="1" show="none" />
            </case>
            <else>
              <!-- Held benötigt keine Pause aufgrund von zu hoher Erschöpfung. -->
              <switch name="heldLebenspunkte">
                <case max="${heldLebenspunkteMaximum}">
                  <set name="anzahlGruppenmitgliederRastbedarf" inc="1" show="none" />
                </case>
                <else>
                  <!-- Held benötigt keine Pause aufgrund von zu wenigen Lebenspunkten. -->
                  <!-- Held geht es insgesamt prima! -->
                </else>
              </switch>
            </else>
          </switch>
        </else>
      </switch>
    </for>
    <!-- Variablen für die Rückgabe setzen. -->
    <switch name="anzahlGruppenmitgliederRastbedarf">
      <case val="${anzahlGruppenmitgliederGesamt}">
        <!-- Deckt den Fall "4" mit ab. -->
        <set name="anzahlGruppenmitgliederRastbedarf" val="alle" show="none" />
      </case>
      <case val="3">
        <set name="anzahlGruppenmitgliederRastbedarf" val="3" show="none" />
      </case>
      <case val="2">
        <set name="anzahlGruppenmitgliederRastbedarf" val="2" show="none" />
      </case>
      <case val="1">
        <set name="anzahlGruppenmitgliederRastbedarf" val="1" show="none" />
      </case>
      <else>
        <!-- Sollte eigentlich nicht vorkommen, würde auftreten, falls es keinen betrifft. -->
        <set name="anzahlGruppenmitgliederRastbedarf" val="0" show="none" />
      </else>
    </switch>
  </else>
</switch>

<select all="true" />

</scene>


Man könnte natürlich auch die Schwellenwerte noch in Variablen packen, falls jemand andere Werte haben will, und nur einen Default setzen.
"[T]he Land of Antamar, where freedom reigns for all."
Beatty, Susi; Gunter, Kery: Angie the Ant and the Bumblebee Tree. O.O., o.V., 2005.
Benutzeravatar
cvk
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 3350
Registriert: Fr 13 Jul, 2012 16:10
Heldenname: Lunarias Mondenweh

Nächste

Zurück zu Questen, Abenteuer und Zufallsbegegnungen (inkl. AOQML)



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste