if-Abfragen

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

Moderatoren: Kekse, A-Team

if-Abfragen

Beitragvon Kuo » So 05 Jul, 2020 17:30

Soweit ich das sehe, können die Ergebnisse bei if-Abfragen derzeit nur Text beinhalten, was die Funktion des if-Befehles meines Erachtens doch stark einschränkt. Zumindest erhalte ich bei folgender ZB im Editor die Fehlermeldung, dass das Attribute "then" bei einer if-Abfrage kein Zeiten "<" enthalten darf:

Code: Alles auswählen

[...]

<challenge talent="Tierkunde" mod="3" id="P1">
  <success>
     <store name="Held1"><hero output="name" by-challenge="P1" select="best" /></store>
    <p><fetch name="Held1" /> erklärt euch, dass es sich bei diesem fast 6 Schritt großen Tier mit langem Fell und nach oben gebogenen Stoßzähnen nur um ein Mammut handeln kann. Doch was ist das für ein seltsamer Aufbau, den das Tier auf seinem Rücken trägt?</p>

    <challenge talent="Kriegskunst" mod="12" id="P2">
      <success>
         <store name="Held2"><hero output="name" by-challenge="P2" select="best" /></store>
         <p><if name="Held1" equals="Held2" then="Wiederum hat <fetch name="Held2" /> eine Erklärung parat:" else="Diesmal hat <fetch name="Held2" /> eine Erklärung parat:" /></p>
        <p>Eiselfen richten Mammuts für Schlachten ab und bauen auf deren Rücken Plattformen aus Walknochen und Leder . Während dann am vorderen Ende der Plattform der Führer des Tieres sitzt und es mit Lederriemen, die an den Mammutohren befestigt sind, lenkt, verteilen sich auf der Plattform weitere Soldaten, die meist mit Bögen und Speeren bewaffnet sind.</p>
        <set attribute="EP" inc="5"/>
      </success>
    </challenge>
  </success>
</challenge>

[...]

</scene>


Ganz generell habe ich außerdem den Eindruck, dass if-Abfragen bislang kaum genutzt werden und sich die meisten eher mit has-Abfragen behelfen. Vielleicht wäre es daher generell sinnvoll, den if-Befehl zu überarbeiten? Mir schweben hier (analog zu "has") eigene Zweige vor, evtl. samt "elif"-Zweigen.
Kuo
Herold
Herold
 
Beiträge: 105
Registriert: Mo 18 Mai, 2020 17:16
Heldenname: Kuo

Re: if-Abfragen

Beitragvon Tommek » So 05 Jul, 2020 17:43

Ja, habe ich auch schon des Öfteren überlegt. Meist nutze ich dann Switch mit gespeicherten Variablen und "else"-Zweig.
Aber da schreibt man dann solche Sätze wie im Beispiel ja diverse male neu.

Fallen dir noch weitere Anwendungsmöglichkeiten ein? Dann können wir dir gleich mitbedenken bei einem Umbau.

Grüße,
Tommek
Benutzeravatar
Tommek
Site Admin
Site Admin
 
Beiträge: 8519
Registriert: Mi 17 Mai, 2006 22:40
Wohnort: Eodatia
Heldenname: Alrik Dormwald
Mitglied bei: Orkwacht

Re: if-Abfragen

Beitragvon Kuo » So 05 Jul, 2020 18:47

Danke für die rasche Antwort, switch war mir nicht mehr parat. Ich habe das jetzt so umgesetzt und es funktioniert gut.

Meiner Meinung nach erübrigt sich die Notwendigkeit einer Anpassung damit auch. Zumindest ist der Vergleich von Variablen auch mit switch gut möglich.
Kuo
Herold
Herold
 
Beiträge: 105
Registriert: Mo 18 Mai, 2020 17:16
Heldenname: Kuo

Re: if-Abfragen

Beitragvon Tommek » So 05 Jul, 2020 20:53

Ok, wenn es eine akute Idee gibt, sag Bescheid.
Benutzeravatar
Tommek
Site Admin
Site Admin
 
Beiträge: 8519
Registriert: Mi 17 Mai, 2006 22:40
Wohnort: Eodatia
Heldenname: Alrik Dormwald
Mitglied bei: Orkwacht

Re: if-Abfragen

Beitragvon Lowlander » Mo 06 Jul, 2020 17:26

Kuo hat geschrieben:Soweit ich das sehe, können die Ergebnisse bei if-Abfragen derzeit nur Text beinhalten, was die Funktion des if-Befehles meines Erachtens doch stark einschränkt.


genau dafür sind if-Abfragen da: wenn die anderen Alternativen zu schwafelig sind (zu viel Code), obwohl man eigentlich nur Texte austauschen möchte, z.B. für männlich/weiblich oder solche Kleinigkeiten.
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2276
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: if-Abfragen

Beitragvon Kuo » Mo 06 Jul, 2020 18:12

Verstehe, das macht natürlich Sinn. Für mich (mit geringem Python-Hintergrund) hatte if bislang einfach eine andere Bedeutung, daher die Verwirrung.

Ich habe in der Wiki-Doku bei if bereits einen Hinweis auf switch aufgenommen, damit man eher sieht, dass es hier 2 Befehle mit ähnlichem Anwendungsbereich gibt.
Kuo
Herold
Herold
 
Beiträge: 105
Registriert: Mo 18 Mai, 2020 17:16
Heldenname: Kuo


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



Wer ist online?

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