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:
- 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.
- 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.
- Doku: dann passe ich die Doku im Wiki an und kündige die Änderung als AOQML-Änderung im Forum an.
- 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