Seite 1 von 1

<challenge> mit id= vs. name= und <hero> mit by-challenge

BeitragVerfasst: Mo 28 Sep, 2020 09:11
von Lowlander
Moin allerseits,

in https://forum.antamar-community.de/viewtopic.php?f=77&t=9662&p=333227#p333225 kam hervor, dass wir das Ergebnis einer <challenge ...> sowohl in name=... als normale Variable als auch unter id=... mit erweiterten Informationen zur Verwendung in <held by-challenge=...> abspeichern. Das finde ich unlogisch und fehleranfällig. Zudem ist eine id auf XML-Ebene eigentlich eine in einem Dokument eindeutige ID, also ein vordefiniertes XML-Attribut, dass hier missbraucht wurde. (Die id=... meint <retain> tatsächlich die XML-id, um nämlich mit Dateiname+id eine eindeutige Stelle zu finden.)

Ich würde das daher gerne aufräumen und folgendes umbauen:
  1. AOQML-Engine: falls in einer <challenge> keine id= aber ein name= angegeben wird, wird der Ausdruck unter name= auch als id für <hero challenge-by="...> verwendet.
  2. aoqml.xsd: als nächstes entferne ich aus dem challenge-tag in der aoqml.xsd die das id-Attribut, darauf reagieren dann auch automatisch neuere Versionen des AOQML-Editors.
  3. Doku: dann passe ich die Doku im Wiki an und kündige die Änderung als AOQML-Änderung im Forum an.
  4. Antamar/Queste+ZBs: zuletzt stelle ich alle ZB's und Queste, die sich im Antamar-git befinden so um, dass nur in <challenge> nur noch name= verwendet wird.

Wir müssten nur bei neu ins Spiel kommenden Questen+ZBs dann darauf achten, dass das auch richtig gemacht wird, wobei der Editor ja ein <hero by-challenge=...> ohne eine <challenge name=...> als Fehler erkennen wird - eigentlich sogar jetzt schon, auch wenn das derzeit eigentlich noch eine Falschmeldung ist.

Ihr könnt jetzt schon einfach auch name= ZUSÄTZLICH in der <challenge> mit gleichen Wert wie id=... verwenden, das wäre dann zu beiden Varianten kompatibel:

Code: Alles auswählen
<challenge talent="Programmieren" name="ProgrammierenErgebnis" id="ProgrammierenErgebnis">
<success>...


Falls ihr den Wert nur in derselben Laufzeit-Szene (also inkl. replays und includes) verwendet, könnt ihr auch scope="scene" dazu schreiben, um die Datenbank sauber zu halten.

Je weniger seltsame Unterschiede es gibt, desto weniger fehleranfällig ist die Engine und sind Quests+ZBs, daher plädiere ich dafür, das umzustellen. Gegenrede?
[/code]

Grüße
... Lowlander

Re: <challenge> mit id= vs. name= und <hero> mit by-challeng

BeitragVerfasst: Mo 05 Okt, 2020 16:29
von Lowlander
Die Umstellung ist erfolgt.

Re: <challenge> mit id= vs. name= und <hero> mit by-challeng

BeitragVerfasst: Mo 05 Okt, 2020 22:39
von Kuo
Ist das richtig so, dass name und scope zweifach angegeben werden müssen oder ist das im Wiki einfach falsch hinterleg? Siehe: https://wiki.antamar.eu/index.php/Hero#by-challenge

Re: <challenge> mit id= vs. name= und <hero> mit by-challeng

BeitragVerfasst: Mo 05 Okt, 2020 22:42
von cvk
Nein, das ist vermutlich nur ein Copy & Paste-Fehler. Kannst du gerne korrigieren.