XML-Metadaten

Aus EnigmaWiki

Wechseln zu: Navigation, Suche
Verfügbare Sprachen: Deutsch, English, Русский

Hinweis: Bei grossen Teilen dieser Seite handelt es sich um eine freie Übersetzung des entsprechenden Kapitels im Referenz-Manual


Metadaten sind Informationen zum Level, wie zum Beispiel: Levelname, Autor, Version, Lizenz, Enigma-Version etc. Bei Enigma-Levels werden diese Angaben in XML zwischen den Blöcken <el:info ...> und </el:info> gemacht. Dies sieht dann etwa folgendermassen aus:

 
<el:info el:type="level">
  <el:identity el:title="Hello world" el:subtitle="My first level" el:id="20061215weihnachtsmann523"/>
  <el:version el:score="1" el:release="1" el:revision="0" el:status="experimental"/>
  <el:author el:name="Sankt Nikolaus" el:email="weihn@chtsma.nn" el:homepage="http://enigma.mal2.ch"/>
  <el:copyright>Copyright (c) 2006 Sankt Nikolaus </el:copyright>
  <el:license el:type="GPL v2.0 or above" el:open="true"/>
  <el:compatibility el:enigma="1.00"/>
  <el:modes el:easy="false" el:single="true" el:network="false"/>
  <el:comments>
    <el:credits el:showinfo="true" el:showstart="true">
      Danke an Die Elfen, die dieses Level getestet haben.
    </el:credits>
    <el:dedication el:showinfo="true" el:showstart="true">
      Für Rudolph mit der roten Nase, der mir stets den Weg leuchtet.
    </el:dedication>
    <el:code>
      Anmerkungen zum Code, wie z.B. To-Do-Liste oder Versionshinweise
    </el:code>
  </el:comments>
  <el:update el:url="http://mein-server.org/pfad/zum/level.xml"/>
  <el:upgrade el:url="http://mein-server.org/pfad/zum/level_v2.xml" el:release="2"/>
  <el:score el:easy="00:23" el:difficult="00:55"/>
</el:info>
 

Inhaltsverzeichnis

Sehr Kurzer XML-Crashkurs

XML-Elemente werden in folgenden Schemata notiert:

<element>
  Elementinhalt
</element>

oder

<element/>

für ein Element ohne Inhalt.

Elementen können auch Attribute zugewiesen werden, das sieht dann etwa wie folgt aus:

<element attribut1="wert1" attribut2="wert2">
  Elementinhalt
</element>

bzw.

<element attribut1="wert1" attribut2="wert2"/>

Des Weiteren ist anzumerken, dass der Elementinhalt sowohl aus Text als auch aus weiteren Elementen bestehen kann.

Wenn Du mehr über XML wissen möchtest, empfehle ich dir die XML-Dokumentation von Selfhtml [1]


Die Angaben

el:identity

<el:identity el:title="Hello world" el:subtitle="My first level" el:id="20061215weihnachtsmann523"/>

Diese Angabe wird verlangt, das heisst, ein Level ohne el:identity ist kein «gültiges» Level und produziert eine Fehlermeldung.

el:identity enthält Titel, Untertitel und Level-ID des Levels.

Attribute

  • el:title (verlangt): Der Titel des Levels
  • el:subtitle (verlangt): Der Untertitel des Levels
  • el:id (verlangt): Der ID-String des Levels. Theoretisch kann hier irgend ein String gewählt werden. Es ist jedoch empfohlen, die Form YYYYMMDDautorXXX zu verwenden. YYYYMMDD steht für Jahr-Monat-Tag und anstelle von autor kannst du deinen Namen eintragen. XXX sind drei zufällige Zahlen, die du frei wählen kannst. Sie stellen sicher, dass zwei Levels, die du am selben Tag geschrieben hast, eine eindeutige ID haben. Wenn du mehr als 999 Levels am Tag schreibst, solltest du dir ein Pseudonym zulegen ;-)

Elementinhalt

Dieses Element hat keinen Inhalt.

el:version

<el:version el:score="1" el:release="1" el:revision="0" el:status="experimental"/>

verlangt

el:version enthält Angaben zur Version des Levels.

Attribute

  • el:score (verlangt): Diese Zahl wird jedes Mal um eins erhöht, wenn sich das Level zu seinem Vorgänger so stark verändert hat, dass die Bestzeiten nicht mehr vergleichbar sind. Neue Levels starten mit dem Wert 1.
  • el:release (verlangt): Diese Zahl wird jedes Mal um eins erhöht, wenn das Level so verändert wurde, dass es nicht mehr kompatibel ist zu früheren Enigma-Versionen, oder wenn el:score erhöht wurde. Neue Levels starten mit dem Wert 1.
  • el:revision (verlangt): Diese Zahl wird jedes Mal um eins erhöht, wenn eine neue Version des Levels veröffentlicht wird.
  • el:status (verlangt): Kann die Werte "released", "stable", "test" und "experimental" annehmen. Am Anfang wird der Status auf experimental gesetzt. Wenn das Level fertig geschrieben, aber noch nicht auf Herz und Nieren geprüft wurde, erhält es den Status test. Wenn das Level keine Bugs mehr hat, darfst du es auf stable setzen.

Elementinhalt

Dieses Element hat keinen Inhalt.

el:author

<el:author el:name="Sankt Nikolaus" el:email="weihn@chtsma.nn" el:homepage="http://enigma.mal2.ch"/>

verlangt

el:author enthält Angaben zu dem/den Levelautoren

Attribute

  • el:name (optional): Hier kannst du deinen Namen eintragen. Wenn du dieses Attribut weglässt, wird ihm automatisch der Wert "anonymous" zugewiesen.
  • el:email (optional): Hier kannst du deine E-Mail-Adresse eintragen. Alternativ kannst du auch eine Newsgroup oder ein Forum Angeben, in dem man dich erreichen kann. Die Adresse wird auf der Level-Info-Seite angezeigt.
  • el:homepage (optional): Wenn du willst, kannst du deine Homepageadresse angeben. Sie wird dann auf der Level-Info-Seite angezeigt.

Elementinhalt

Dieses Element hat keinen Inhalt.

el:copyright

<el:copyright>Copyright (c) 2006 Sankt Nikolaus </el:copyright>

verlangt

el:copyright enthält Angaben zum Copyright

Attribute

Dieses Element hat keine Attribute

Elementinhalt

Eine kurze Copyright-Notitz Mit Jahr und Copyright-Inhaber.

el:license

<el:license el:type="GPL v2.0 or above" el:open="true"/>

verlangt

el:license enthält Angaben zur Lizenz, unter der das Level veröffentlicht wird.

Attribute

  • el:type (verlangt): Der Name der Lizenz und eventuell ein Link zum Lizenztext. Wenn du deine eigene Lizenz verwenden willst, die du im Elementinhalt angibst, wird dieses Attribut auf "special" gesetzt.
  • el:open (verlangt): Ist "true", falls die Lizenz frei ist nach den Kriterien der Open Source Initiative (OSI)[2]. Wenn die Lizenz unfrei ist, erhält das Attribut den Wert "false". Level, die nicht unter einer freien Lizenz veröffentlicht werden, können nicht mit in das offizielle Enigma-Levelpaket integriert werden.

Elementinhalt

Wenn du el:type auf "special" gesetzt hast, kannst du deine eigene Lizenz als Elementinhalt angeben.

el:compatibility

<el:compatibility el:enigma="1.00"/>

verlangt

el:compatibility macht Angaben zur Enigma-Version und -Engine, unter der das Level läuft sowie zu den benötigten Lua-bibliotheken.

Attribute

  • el:enigma (verlangt): Gibt die zu verwendende Enigma-Version an.
  • el:engine (optional): Gibt die zu verwendende Engine an. Mögliche Werte sind "enigma", "oxyd1", "per.oxyd" "oxyd.extra" und "oxyd.magnum", die sich alle in der Handhabung verschiedener Objekte unterscheiden. Per Voreinstellung wird die Engine "enigma" verwendet. Dieses Attribut kann nur bei Levels und nicht bei Levelpaketen verwendet werden.

Elementinhalt

siehe XML-Metadaten/el:compatibility für Kindelemente.

el:modes

<el:modes el:easy="false" el:single="true" el:network="false"/>

verlangt

Macht Angaben zu den verfügbaren Modi.

Attribute

  • el:easy (verlangt): Wenn das Level über einen Easy-Mode verfügt, wird das Attribut auf "true" gesetzt, ansonsten auf "false".
  • el:single (verlangt): Wenn das Level für Einzelspieler spielbar ist, wird das Attribut auf "true" gesetzt. Kann das Level nur über ein Zwei-Spieler-Netzwerk gespielt werden, erhält es den Wert "false".
  • el:network (verlangt): Wenn das Level über ein Zwei-Spieler-Netzwerk spielbar ist, wird das Attribut auf "true" gesetzt. Kann das Level nur als Einzelspieler gespielt werden, erhält es den Wert "false".
  • el:control (optional): Gibt an, mit welchem Eingabegerät bzw. auf welche Weise das Level gesteuert wird. Voreinstellung ist "force". Wird das Attribut auf "balance" gesetzt, wird mit der Maus die ganze Welt schräg gestellt. Soll das Level über die Tastatur gesteuert werden, was vor Allem bei Sokoban-Levels praktisch ist, wird der Wert auf "key" gesetzt. Des Weiteren gibt es für alternative Steuermethoden noch den Wert "other". Welche Methode am Schluss effektiv zur Anwendung kommt, entscheidet der User. Allerdings werden Highscores nur gespeichert, wenn sie mit der hier definierten Steuermethode erreicht wurden. In der aktuellen Enigma-Version können Levels nur mit der Methode "force" gespielt werden. Die anderen Eingabemethoden funktionieren noch nicht.
  • el:scoreunit (optional): Legt fest, ob die Bestleistung als Zeit ("duration") oder als Zahl ("number") angegeben wird. Je kleiner die Zeit oder die Zahl, desto besser die Leistung. Voreinstellung ist "duration".
  • el:scoretarget (optional): Gibt an, wie die Bestleistung gemessen wird. Voreinstellung ist "time", das die benötigte Zeit misst. "pushes" zählt, wieviel mal eine Kiste geschoben wird und eignet sich daher für Sokoban-Levels. "moves" zählt die Anzahl Bewegungen des Actors. Alternativ kann man dem Attribut auch den Namen einer Lua-Funktion zuweisen, die die Punktzahl zurückgibt.

Elementinhalt

Dieses Element hat keinen Inhalt.

el:comments

<el:comments>
  <el:credits el:showinfo="true" el:showstart="true">
    Danke an Die Elfen, die dieses Level getestet haben.
  </el:credits>
  <el:dedication el:showinfo="true" el:showstart="true">
    Für Rudolph mit der roten Nase, der mir stets den Weg leuchtet.
  </el:dedication>
  <el:code>
    Anmerkungen zum Code, wie z.B. To-Do-Liste oder Versionshinweise
  </el:code>
</el:comments>

optional

el:comments enthält Anmerkungen des Autors, Verdankungen, Widmungen, Grüsse an die Mutter etc.

Attribute

Dieses Element hat keine Attribute

Elementinhalt

Siehe XML-Metadaten/el:comments für Kindelemente.

el:update

<el:update el:url="http://mein-server.org/pfad/zum/level.xml"/>

optional

Gibt die URL an, von der eine neue Version des Levels geholt werden kann, nachdem die Revision-Nummer erhöht wurde. Hinweis: Levels, die mit Enigma zusammen geliefert werden, werden auch vom Enigma-Team auf dem (noch nicht vorhandenen) Enigma-Levelserver gehostet. Wer nicht möchte, dass seine Level-Updates vor der Veröffentlichung durch das Enigma-Team wandern, muss sein Level selber vertreiben.

Attribute

  • el:url (verlangt): Eine URL, die lange valid bleibt, unter der Level-Updates veröffentlicht werden.

Elementinhalt

Dieses Element hat keinen Inhalt.

el:upgrade

<el:upgrade el:url="http://mein-server.org/pfad/zum/level_v2.xml" el:release="2"/>

optional

Gibt die URL an, von der eine neue Version des Levels geholt werden kann, nachdem die Release-Nummer erhöht wurde.

Attribute

  • el:url (verlangt): Eine URL, die lange valid bleibt, unter der Level-Upgrades veröffentlicht werden.
  • el:release (verlangt): Die Release-Nummer, des Upgrades.

Elementinhalt

Dieses Element hat keinen Inhalt.

el:score

<el:score el:easy="00:23" el:difficult="00:55"/>

verlangt

Macht Angaben zu den Bestzeiten. Allerdings sind dies die (Best)Zeiten des Autors und nicht die absoluten Bestzeiten.

Attribute

  • el:easy (verlangt): Bestleistung im Easymode. Wenn die Bestleistung in Zeit angegeben wird, erhält das Attribut einen Wert in der Form MM:SS, also zwei Zahlen für die Minuten und zwei für die Sekunden. Wird die Bestleistung in Anzahl Zügen oder Kistenverschiebungen gemessen, wird hier einfach eine Zahl eingetragen. Hat es der Levelautor noch nicht geschafft, das Level im Easymode zu lösen, wird dem Attribut der Wert "-" zugewiesen.
  • el:difficult (verlangt): Analog zu el:easy für den schweren Modus.

Elementinhalt

Dieses Element hat keinen Inhalt.

Persönliche Werkzeuge