Seite 1 von 1

if-Abfragen

BeitragVerfasst: So 05 Jul, 2020 17:30
von Kuo
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.

Re: if-Abfragen

BeitragVerfasst: So 05 Jul, 2020 17:43
von Tommek
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

Re: if-Abfragen

BeitragVerfasst: So 05 Jul, 2020 18:47
von Kuo
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.

Re: if-Abfragen

BeitragVerfasst: So 05 Jul, 2020 20:53
von Tommek
Ok, wenn es eine akute Idee gibt, sag Bescheid.

Re: if-Abfragen

BeitragVerfasst: Mo 06 Jul, 2020 17:26
von Lowlander
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.

Re: if-Abfragen

BeitragVerfasst: Mo 06 Jul, 2020 18:12
von Kuo
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.