Fr 20 Nov, 2015 13:44
<include target="/lib/_heldenaufzaehlung"/>
<replay name="AOQML_Bibliothek_zsh/>
<p>Es sind <fetch name="AOQML_Bibliothek_ash"/> Helden selektiert.
<replay name="AOQML_Bibliothek_heldenaufzaehlung/>
<replay name="AOQML_Bibliothek_heldenaufzaehlung_nick/>
<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>
<!-- 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>
<!-- 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>
Fr 20 Nov, 2015 14:03
Fr 20 Nov, 2015 14:05
Fr 20 Nov, 2015 14:08
Fr 20 Nov, 2015 14:15
Fr 20 Nov, 2015 14:20
Fr 20 Nov, 2015 14:21
Fr 20 Nov, 2015 15:48
Fr 20 Nov, 2015 20:27
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.
Sa 21 Nov, 2015 13:26
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 .
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:
<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:
<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>
Sa 21 Nov, 2015 16:10
So 22 Nov, 2015 10:42
<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>
So 22 Nov, 2015 11:09
<?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>
<include target="/lib/_landessprache" />
Mi 12 Okt, 2016 21:31
<?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>