CR-Format
Einleitung
Diese Beschreibung des Eressea Computer Reports legt das hauptsächliche Augenmerk auf der Bedeutung des Inhalts einzelner Blöcke und Attribute. Der syntaktische Aufbau wird aber ebenfalls kurz angerissen.Hierbei handelt es sich nicht um offizielle Informationen, und wurde auch in keinster Weise von Enno überprüft oder dergleichen. Schickt keine EMails bezüglich Fehler auf dieser Seite an ihn! Benutzung erfolgt auf eigene Gefahr.
Es kann sein, und ist auch sehr wahrscheinlich, dass einige Dinge hier nicht genannt werden. Ist dies der Fall, weiß ich um dieses Detail noch nicht bescheid und würde mich über eine Email an max-julian AT gmx.at freuen.
Ein Protokoll der Veränderungen findet sich im Changelog.
Andere Quellen
Neben dieser Seite existieren noch weitere CR-Format-Beschreibungen. Die mir Bekannten sind die folgenden:Das einzig offizielle Dokument von Enno zum CR-Format (leicht veraltert). http://eressea.upb.de/~eressea/crformat.shtml.
Die aktualisierte CR-Format Beschreibung von Ingo Schwarze (CRIPSY-Entwickler) http://www.studis.de/Eressea/Tools/crispy/Doc/ref/obj/crformat.html
Danksagungen
Natürlich ist das ganze hier nicht alleine auf meinem Mist gewachsenen. Ein großer Teil wurde von Gulrak aka Steffen Schümann, Fiete Fietz und Ralf Duckstein mit getragen.Darüber hinaus mussten noch viele Leute aus #eressea meine löchernden Fragen ertragen, deren dankenswerte Beantwortung aber ebenfalls hiezu beigetragen hat.
Creative Commons - Some Right Reserved
Dieser Inhalt ist unter einem Creative Commons Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen Lizenzvertrag lizenziert. Um die Lizenz anzusehen, gehen Sie bitte zu http://creativecommons.org/licenses/by-nc-sa/2.0/at/ oder schicken Sie einen Brief an Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.Syntax
Der CR besteht aus Blöcken, Attributen und Listeneinträgen. Das Format ist zeilenorientiert, also je Zeile im CR ist ein Block, ein Attribut oder ein Listeneintrag vorhanden.
Die Zeilen werden entweder durch ein Carrige-Return (0x0D) oder ein
Linefeed (0x0A) getrennt. Leerzeilen haben keine Bedeutung.
Der Zeichensatz wird durch das charset-Attribut im
VERSION-Block
angegeben.
Ein Block, inklusive seiner Attribute und Subblöcke wird
im CR dargestellt, indem zuerst der Block an sich geschrieben wird, dann
alle Attribute (bzw eine Liste) aufgelistet werden, und schließlich
alle Subblöcke angegeben werden. Die Subblöcke können
ihrerseits dabei wieder Subblöcke haben.
Damit der daraus entstandene CR konsistent ist, es also nur einen Weg
gibt die Blöcke in eine Hierarchie einzuordnen, bedarf es einerseits
der unten beschriebenen Hierarchie, andererseits ist auch in gewissem
Umfang auf die Anordnung gleichrangiger Blöcke
(Zum Beispiel ist die Anordnung der
MESSAGE-Subblöcke eines
BATTLE-Blocks entscheidend)
zu achten.
Als Beispiel hier ein gekürzter CR-Ausschnitt:
VERSION 64 125;Runde 7982734;date REGION 0 0 "Foo";Name EINHEIT 1 "Fred";Name 1;Anzahl REGION 1 0 "Bar";Name EINHEIT 2 "Otto";Name 1;AnzahlDieses konstruierte Beispiel würde folgenden Baum ergeben:
VERSION 64 +----------------------+ | Runde = int(125) | | date = int(7982734) | +----------------------+ | +----------------+----------------+ | | REGION 0 0 REGION 1 0 +----------------------+ +-----------------------+ | Name = string("Foo") | | Name = string("Bar") | +----------------------+ +-----------------------+ | | EINHEIT 1 EINHEIT 2 +-------------------------+ +-------------------------+ | Name = string("Fred") | | Name = string("Otto") | | Anzahl = int(1) | | Anzahl = int(1) | +-------------------------+ +-------------------------+
Generell sei noch angemerkt, dass Nummern von Einheiten, Gebäuden oder Schiffen nicht in base36 (wie im NR), sondern in base10 dargestellt werden.
Blöcke
Name und Anzahl der Blöcke sind von Version zu Version unterschiedlich, eventuell ändert sich auch die Bedeutung eines Blocks. Die Syntax ist aber immer gleich:
BLOCK => UPPERALPHA {WS {WS} ID} {WS} [ ";" COMMENT ] ID => INT_VAL COMMENT => STRING Siehe auch EBNF-Syntax
Die ID eines Blockes besteht aus keinem oder mehreren signed 32-bit Integer. Das Paar aus Block und ID ist eindeutig innerhalb des Superblocks, darf dort also nur einmal vorkommen.
Unbekannte Blöcke ohne ID, also solche die nicht in der Hierarchy-Information genannt werden, sind immer Subblöcke des vorhergehenden Blocks mit ID. Blöcke ohne ID sind nur in Bezug auf ihren Superblock eindeutig.
Außerdem kann hinter einem Block noch ein Kommentar vorkommen, das mit einem ";" beginnt und bis zum Ende der Zeile geht.
Beispiele für Blöcke im CR:
VERSION 64 REGION 34 -7; Kommentar REGIONSBOTSCHAFTEN
Attribute
Name und Anzahl der Attribute sind von Version zu Version unterschiedlich. Gewisse Attribute sind bekannt, doch es existieren wohl noch weitere Attribute.
ATTRIBUTE => VALUE {WS} ";" {WS} TAG {WS} TAG => ALPHANUM { ALPHANUM | (WS ALPHANUM) } VALUE => STRING_VAL | INT_VAL Siehe auch EBNF-Syntax
Jedes Attribut besteht aus einem Wert und einem Tag, die durch ein ";" getrennt sind.
Das Tag ist für das Attribut bezeichnend (Bei der Zeile "23;Holz" kann man also auch vom Holz-Attribut sprechen), und besteht aus Buchstaben, Zahlen und eventuell Leerzeichen die aber nicht am Beginn oder Ende des Tags vorkommen dürfen.
Der Wert ist entweder vom Typ String oder Integer.
Ein String beginnt und endet mit einem doppeltem Hochkomma ("), und enthält beliebige Zeichen in beliebiger Anzahl.
Doppelte Hochkomma im Wert eines String-Attributs werden mit einem
Backslash escaped. Das Backslash, sollte es vorkommen, ebenfalls.
Beispiel: "Herr \"Müller\\Mayer\" Martin";Name
Ergibt ein Attribut des Typs String mit dem Tag
Name und dem Wert Herr "Müller\Mayer" Martin
Ein Attribut mit Integern enthält entweder
eine oder mehrere durch mindestens ein Leerzeichen getrennte Zahlen,
welche jeweils einen signed 32-Bit Integer in base10 darstellen.
Beispiel: 10 5 -1;Holzfaellen
Jedes Attribut ist eindeutig einem Block zugeordnet, und darf nur einmal je Block vorkommen.
Die Tags der Attribute sind case-insensitiv. "3;Holz" ist also das selbe Attribut wie "3;holz"
Wenn ein Tag mit Umlauten, ein anderes mit einer Umschreibung der
Umlaute geschrieben wird, sind sie gleich.
"30 1;Holzällen" und "30 1;Holzfaellen" sind
also das selbe Attribut.
Folgende Umlaute werden fix wie folgt umschrieben:
ä == ae
ü == ue
ö == oe
ß == ss??
Andere Nicht-7Bit-ASCII Buchstaben werden nicht, oder in noch nicht bekanntem Maße umschrieben. Hinweise sind willkommen.
Die Kombination der oberen Eigenschaften ergeben eine Vielzahl
von Möglichkeiten die beachtet werden müssen.
Trotzdem sollte nicht einfach alles in eine Form (lower-case ohne Umlaute)
umgewandelt werden, sondern die eingelesene Schreibweise bei einer
Ausgabe beibehalten werden.
Beispiele:
30 1;Bergbau "Xandaryl";Insel 172;Runde
Listeneinträge
Listeneinträge sind die einzigen Attribute ohne einen Tag. Hier hat ein Block keine String- oder Integerattribut, sondern nur eine Reihe von "Taglosen Stringattributen" die zusammen eine Liste bilden.
LISTENEINTRAG => {WS} STRING_VAL {WS} Siehe auch EBNF-Syntax
Wie beim normalen Stringattribut ergeben sich hier Probleme aufgrund eines möglichen Hochkommas innerhalb des Strings (siehe dort).
Beispiel für eine Liste aus drei Einträgen:
"MACHE Haus" "Thorin; ein Recke" "Thorin (thor) konnte kein Silber verdienen"
Reservierte Blöcke und Attribute
- Der VERSION-Block ist der Block, der die Datei beschreibt. Es ist der erste Block im CR. Es können auch mehrere VERSION-Blöcke in einer Datei bzw in einer Eingabe vorkommen, dieser Fall ist so zu behandeln, als sei ein zweiter Report eingelesen worden (Beispiel: cat 1.cr 2.cr 3.cr | parser).
- Runde ist ein Tag, in dem das Alter des Blocks enthalten ist. Blöcke innerhalb eines CR können unterschiedlich datiert sein, wenn z.B. ein Report aus Informationen mehrere Runden zusammengestellt wurde. Das Runde-Attribut sollte das Datum der aktuellsten Informationen über den Block angeben. Es wird auf Unterblöcke vererbt, falls also diese Blöcke neueren oder älteren Stand repräsentieren, sollten sie ein eigenes Runde-Attribut bekommen. CRs ohne Rundeninformation sind so zu behandeln, als seine sie aus Runde 0.
- Das Konfiguration-Attribut im VERSION-Block. Es kann verwendet werden, um den Inhalt des CRs zu beschreiben, z.b. mit dem Namen des Tools, das ihn erzeugt hat, oder einer Beschreibung. Der Wert "Standard" ist für den Eressea-Server reserviert.
Hirarchie der Blöcke
Im folgenden werden alle mir bekannten Blöcke inklusive deren Attribute gelistet und deren Bedeutung beschrieben.
Die Blöcke sind in der Hierarchie so angeordnet, wie sie im CR selbst auch seitens des Servers geordnet sind, bzw bei clientspezifischen Blöcken, wie sie der Client anordnen würde.
Vor dem Doppelpunkt steht der Name des Blocks der gleichzeitig seine Schreibweise im Computerreport darstellt, nach dem Doppelpunkt steht die Anzahl der IDs des Blocks. Werden im Report nur ein Teil der IDs genannt, so sind die fehlenden Stellen rechts mit Nuller zu ergänzen.
Die Attribute der Blöcke sind über den Tag und den Typen des Wertes (siehe oben) genannt, und kurz beschrieben. Bei dynamisch auftretenden Attributen wurde darauf verzichtet, alle Möglichkeiten aufzuzählen, sondern nur eine Beschreibung des Musters geliefert.
Sollte ein Attribut garnicht im Report genannt werden, ist die Auswirkung unter "Defaultwert" genannt. Sollte kein Defaultwert angegeben sein, so ist die vom Attribut beschriebene Information undefiniert/unbekannt, und das Verhalten eines Clients nicht fix vorgegeben.
Wo es sinnvoll erscheint, können Attribute und Informationen von Superblöcken an deren Subblöcke vererbt werden. Zum Beispiel bedeutet ein REGION-Block, dass die Attribute des Blocks selbst, aber auch die Blöcke/Attribute mancher Subblöcke auf diese Region bezogen sind. Ein EINHEIT-Block beschreibt also automatisch, dass sich diese Einheit in der durch den REGION-Superblock beschriebenen Region befindet.
VERSION:1 +-PARTEI:1 | +-GEGENSTAENDE:0 | +-OPTIONEN:0 | +-ALLIANZ:1 | +-GRUPPE:1 | | `-ALLIANZ:1 | +-MESSAGE:1 | `-BATTLE:3 | `-MESSAGE:1 +-ZAUBER:1 | `-KOMPONENTEN:0 +-TRANK:1 | `-ZUTATEN:0 +-ISLAND:1 +-REGION:3 | +-MESSAGE:1 | +-BURG:1 | | +-EFFECTS:0 | +-SCHIFF:1 | | +-EFFECTS:0 | +-PREISE:0 | +-RESOURCE:1 | +-EFFECTS:0 | +-GRENZE:1 | | +-EFFECTS:0 | +-DURCHSCHIFFUNG:0 | +-DURCHREISE:0 | +-EINHEIT:1 | | +-COMMANDS:0 | | +-TALENTE:0 | | +-SPRUECHE:0 | | +-KAMPFZAUBER:1 | | +-GEGENSTAENDE:0 | | +-EFFECTS:0 | | `-EINHEITSBOTSCHAFTEN:0 | `-SCHEMEN:3 +-MESSAGETYPE:1 +-TRANSLATION:0 `-HOTSPOT:1
VERSION verNum
ID | Bedeutung | Beschreibung | |
---|---|---|---|
verNum | CR-Version | Gibt die Versionsnummer des in diesem Report verwendeten CR-Formats an. Die aktuelle Version ist 64. | |
Attribut | Typ | Beschreibung | |
charset | string |
Gibt die Zeichensatzkodierung dieses Reports an. Solange man nichts gegenteiliges weiß (zB bei der ersten Zeile des Reports), sollte ISO-8859-1 angenommen werden. Defaultwert: "ISO-8859-1" Seit Report 530. Davor immer ISO-8859-1. | |
locale | string |
Zeigt an in welcher Sprache dieser Report erstellt wurde. Benutzte Werte sind "de" für Deutsch, "en" für Englisch und "fr" für Französisch. Generell ist der String also das ISO-Kürzel der verwendeten Sprache. Defaultwert: "de" | |
noskillpoints | int |
Zeigt an, ob Talenttage Geltung besitzen oder nicht. Ab einer gewissen Regeländerung existiert dieses Attribut und ist auf dem Wert "1" für "Talenttage haben keine Bedeutung". Vor dieser Änderung fand sich dieses Attribut nicht im Computerreport, und nimmt daher den Defaultwert "0" für "Talenttage haben Bedeutung" an. Defaultwert: 0 | |
date | int | Das Datum des Reports in Sekunden seit 1.Jänner 1970. | |
Spiel | string |
Ein vom Server vergebener String zur Identifikation des Spiels von dem
dieser Report handelt. Bekannte Werte sind: "Eressea", "Tutorial" und "Wettstreit der Weisen". | |
Konfiguration | string |
Ein vom Reportersteller vergebener Wert zur Identifikation von
Besonderheiten im Report, insbesondere von Unterschieden zum
serverseitig erstellten Report. Bekannte Werte sind: "Java-Tools" von Magellan, "Standard" vom Eresseaserver und "Vorlage" von Gulraks Vorlage. Defaultwert: "Standard", also Keine Unterschiede zum Server-versendeten Report. Ein Client sollte aber immer einen eigenen Wert setzten, um Fehlern vorzubeugen. | |
Koordinaten | string |
Bezeichnet die Art der Anordnung der Regionen. Seit der Umstellung in Eressea vor ewigen Zeiten immer "Hex". Default: Ist das Attribut nicht genannt, handelt es sich um einen quadratischen Weltenaufbau. | |
Basis | int |
Die Basis, mit der Nummern von Einheiten, Gebäuden und dergleichen
dargestellt werden sollten. Auf den Computerreport selber hat dieses
Attribut keine Auswirkungen. Im aktuellen Eressea immer 36. Früher wurden Einheitennummern in base10 dargestellt. Default: 10 | |
Runde | int |
Die Runde von der dieser Report handelt. Defaultwert: 0 | |
Zeitalter | int |
Das Zeitalter der spielinternen Zeitrechnung. Seit vor ewigen Zeiten das zweite Zeitalter eingeläutet wurde, immer auf dem Wert 2. Default: 1 | |
mailto | string |
Die E-Mail Adresse des Servers. In Eressea: "eressea-server@eressea.upb.de" Im Eressea-tutorial: "tutorial@eressea.upb.de" Bei allen Vinyambarvarianten: "vinyambar@eressea.amber.kn-bremen.de" Defaultwert: je nach Spiel (bei Eressea "eressea-server@eressea.upb.de") | |
mailcmd | string |
Betreff damit der Server die Befehls-emails als solche erkennt. In Eressea (deutsche locale): "ERESSEA BEFEHLE" In Eressea (englische locale): "ERESSEA ORDERS" In Wettstreit der Weisen (deutsche locale): "WDW BEFEHLE" Defaultwert: je nach Spiel (bei Eressea "ERESSEA BEFEHLE") |
PARTEI factID
Es dürfen beliebig viele PARTEI-Blöcke im Report vorkommen.
ID | Bedeutung | Beschreibung |
---|---|---|
factID | Parteinummer | Die Nummer der von diesem
Block beschriebenen Partei.
Diese Zahl ist innerhalb der Menge aller Parteien eindeutig. Reserviert: 0 ... Parteinummer unbekannt (seit Report 570). Vorher war 0 die Parteinummer der Monster. |
Attribut | Typ | Beschreibung |
locale | string | Spracheinstellung der Partei. Wie beim VERSION-Block. |
age | int | Das Alter der Partei in Runden. |
Optionen | int |
Kombinierte Optionen, gleiche Information wie im
OPTIONEN Unterblock. Defaultwert: Wenn nicht vorhanden, muss der OPTIONEN-Block konsultiert werden. Sollte dieser ebenfalls fehlen, sind die eingestellten Optionen unbekannt. |
Punkte | int | Die Punkte der Partei. Umso mehr, umso besser. |
Punktedurchschnitt | int | Der Punktedurchschnitt aller Parteien ähnlichen Alters. |
Typ | string | Die Rasse der Personen dieser Partei. |
typprefix | string |
Das Rassenpräfix dieser Partei (dieses Attribut wird auf
EINHEITEN dieser Partei vererbt, kann dort aber
geändert werden). Default: "" (kein Präfix) |
Rekrutierungskosten | int | Silberkosten um eine Person zu Rekrutieren. |
Anzahl Personen | int | Die Anzahl aller Personen dieser Partei. |
Magiegebiet | string |
Das Magiegebiet dieser Partei. Default: "Kein Magiegebiet" (bevor eines gewählt wird) |
heroes | int | Die aktuelle Anzahl Helden in dieser Partei. Default: 0 |
max_heroes | int | Die maximale Anzahl Helden welche diese Partei befördern kann. Default: 0 |
Parteiname | string | Der Name der Partei. |
string | Die e-mail Adresse des Spielers. | |
banner | string |
Das Banner der Partei. Defaultwert: "" |
Aufschlüsselung des Optionen-Attributs und der Bit-Position:
AUSWERTUNG * 1 COMPUTER * 2 ZUGVORLAGE * 4 SILBERPOOL * 8 STATISTIK * 16 DEBUG * 32 ZIPPED * 64 ZEITUNG * 128 MATERIALPOOL * 256 ADRESSEN * 512 BZIP2 * 1024 PUNKTE * 2048 SHOWSKCHANGE * 4096 ======== Summe: Wert des Optionen-Attributs.
GEGENSTAENDE
Siehe GEGENSTAENDE als Kindblock des EINHEIT-blocks.
OPTIONEN
Jedes Attribut kann dabei den Wert 0 für "nicht gesetzt", oder 1 für "Option gesetzt".
Attribut | Typ | Beschreibung |
---|---|---|
AUSWERTUNG | int | Server schickt Normalreport. |
COMPUTER | int | Server schickt Computerreprt. |
ZUGVORLAGE | int | Server schickt eine Zugvorlage. |
SILBERPOOL | int | Der Silberpool ist aktiviert. |
STATISTIK | int | Je Region wird im Normalreport eine Statistik angezeigt. |
DEBUG | int | Genaue Bedeutung unklar. Bis jetzt immer 0. |
ZIPPED | int | Der Report wird gezippt übertragen. |
ZEITUNG | int | Nicht mehr in Verwendung, Xontormia Express gibts keinen mehr. |
MATERIALPOOL | int | Der Materialpool ist aktiviert. |
ADRESSEN | int | Am Ende des Normalreports wird eine Liste aller E-Mailadressen angezeigt. Aktuell keine Wirkung, die Liste wird immer angezeigt. |
BZIP2 | int | Der Report wird Bzip2-gepackt übertragen. |
PUNKTE | int | Punkte und Punktedurschnitt werden im Normal- und Computerreport eingetragen. |
SHOWSKCHANGE | int | Im Normalreport werden Talentsprünge hervorgehoben. |
ALLIANZ factID
ID | Bedeutung | Beschreibung |
---|---|---|
factID | Parteinummer | Die Nummer der anderen Partei, zu welcher die HELFE-Stati gesetzt sind. |
Attribut | Typ | Beschreibung |
Parteiname | string | Der Name der Partei, dessen Allianz-status beschrieben wird. |
Status | int |
HELFE-Status zu dieser Partei. Defaultwert: 0 |
SILBER * 1 KÄMPFE * 2 WAHRNEHMUNG * 4 GIB * 8 BEWACHE * 16 PARTEITARNUNG * 32 ====== Summe: Wert des Status-Attributs.Anmerkung: Der Status HELFE WAHRNEHMUNG ist im aktuellen Eressea-Regelwerk nicht mehr aktiv, und hat keine Bedeutung.
Anmerkung 2: Wenn die Stati SILBER, KÄMPFE, GIB, BEWACHE und PARTEITARNUNG gesetzt sind, nennt man diesen Kombinierten Zustand auch HELFE ALLES.
GRUPPE groupID
ID | Bedeutung | Beschreibung |
---|---|---|
groupID | Gruppennummer | Die Nummer der beschriebenen Gruppe. Diese Zahl ist innerhalb der Menge aller Gruppen einer Partei eindeutig. |
Attribut | Typ | Beschreibung |
name | string | Der Name der Gruppe. |
typprefix | string | Das Rassenpräfix dieser Gruppe. |
MESSAGE msgID
Ein MESSAGE-Block enthält eine Nachricht (Ereignismeldung,
Warnung, Wirtschafts-/Handelsmeldung, ...).
Die verwendeten Attribute hängen (bis auf das type-Attribut) von
dem zugehörigen MESSAGETYPE-Block ab,
und ergeben sich aus dem dortigen text-Attribut.
Sollte einmal auf ein Attribut der MESSAGE innerhalb des text-Attributes des MESSAGETYPE-Blocks zugegriffen werden, dieses aber nicht vorhanden sein, so ist in manchen Fällen die Annahme eines Defaultwertes von 0 bzw "" richtig, in den meisten Fällen ist dies aber ein spezieller Fall bei dem das Attribut den Wert NULL annehmen sollte, den es bei vorhanden sein des Attributes im Report niemals erreichen kann.
ID | Bedeutung | Beschreibung |
---|---|---|
msgID | Nachrichtennummer |
Die Nummer der Meldung. Diese Zahl ist sicher innerhalb eines Reports eindeutig, und vermutlich sogar innerhalb der Menge aller Nachrichten einer Runde eindeutig. |
Attribut | Typ | Beschreibung |
type | int | Gibt die ID des zugehörigen MESSAGETYPE-Blocks an. |
rendered | string | Die serverseitig "gerenderte" Nachricht, wie sie dem Spieler im Normalreport dargestellt wird. Theoretisch sollte beim clientseitigen Rendern (mit Hilfe des MESSAGETYPE-Blocks), der gleiche String herauskommen. |
BATTLE x y z
Wichtig ist, das die Reihenfolge der Kindblöcke eingehalten wird.
ID | Bedeutung | Beschreibung |
---|---|---|
x | X-Koordinate | Die X-Koordinate des Kampfes. |
y | Y-Koordinate | Die Y-Koordinate des Kampfes. |
z | Z-Koordinate | Die Z-Koordinate des Kampfes. |
ZAUBER zauberID
Weiters ist zu beachten, dass der im Normalreport genannte Befehlssyntax für Zauber nicht im Computerreport enthalten ist.
ID | Bedeutung | Beschreibung |
---|---|---|
zauberID | Zaubernummer |
Die Nummer des Zaubers. Es handelt sich hier zwar um eine eindeutige Nummer, bezogen auf die Menge aller Zauber, doch kann man nie sicher sein ob die nächste Regeländerung nicht eine Änderung der Zaubernummer mit sich bringt. |
Attribut | Typ | Beschreibung |
name | string | Der Name dieses Zaubers. |
level | int | Die Stufe des Zaubers. |
rank | int | Der Rang des Zaubers. |
info | string | Eine menschenlesbare Beschreibung der Wirkungsweise des Zaubers. |
class | string |
Die Klasse des Zaubers. Bekannte Werte sind: "combat" ... Ein Kampfzauber "normal" ... Ein normaler Zauber "postcombat" ... Ein Postkampfzauber "precombat" ... Ein Präkampfzauber |
far | int |
Ungleich 0, Wenn es sich um einen Fernkampfzauber handels. Defaultwert: 0 |
ship | int |
Ungleich 0, Wenn es sich um einen Shiffszauber handelt. Defaultwert: 0 |
familiar | int |
Ungleich 0, Wenn es sich um einen Vertrautenzauber handelt. Defaultwert: 0 |
syntax | string |
Die Syntax eines Zauber in kryptischer Form. Die Einhaltung ist zum
erfolgreichen Zaubern notwendig aber nicht hinreichend.
Bekannte Beispiele (unvollständig): ZAUBERE [STUFE n] Zauber "";syntax ZAUBERE [STUFE n] Zauber <Einheit-Nr> "u";syntax ZAUBERE Zauber <Einheit-Nr> <investierte Aura> "ui";syntax ZAUBERE [REGION x y] [STUFE n] Zauber REGION ZAUBERE [REGION x y] [STUFE n] Zauber EINHEIT <Einheit-Nr> ZAUBERE [REGION x y] [STUFE n] Zauber GEBÄUDE <Gebäude-Nr> ZAUBERE [REGION x y] [STUFE n] Zauber SCHIFF <Schiff-Nr> "kc?";syntax ZAUBERE Zauber <Richtung> "c";syntax ZAUBERE [STUFE n] Zauber <Einheit-Nr> [<Einheit-Nr> ...] "u+";syntax Bedeutung der einzelnen Buchstaben: 'c' = Zeichenkette 'k' = REGION|EINHEIT|STUFE|SCHIFF|GEBAEUDE 'i' = Zahl 's' = Schiffsnummer 'b' = Gebaeudenummer 'r' = Regionskoordinaten (x, y) 'u' = Einheit '+' = Wiederholung des vorangehenden Parameters '?' = vorangegangener Parameter ist nicht zwingend Defaultwert: ZAUBERE [STUFE n] Zauber |
KOMPONENTEN
Attribut | Typ | Beschreibung |
---|---|---|
Aura | int int |
Der erste int-Wert bezeichnet die grundsätzlichen Aurakosten, der zweite Wert besagt, ob die Kosten bei Stufe n das n-fache (wert ist ungleich 0) oder das 1-fache (wert ist gleich 0) betragen. Defaultwert: 0 0 |
permanente Aura | int int |
Wie Aura, nur handelt es sich um permanente Aurakosten. Auch hier
bestimmt der erste int-Wert die grundsätzlichen Kosten,
und der zweite Wert ob der erste Wert mit der Stufe multipliziert
wird. Defaultwert: 0 0 |
TRANK trankID
ID | Bedeutung | Beschreibung |
---|---|---|
trankID | Tranknummer | Diese Nummer ist innerhalb der Menge aller Tränke eindeutig. |
Attribut | Typ | Beschreibung |
Name | string | Der Name des Tranks |
Stufe | int |
Die Stufe des Tranks. Defaultwert: 0 |
Beschr | string | Die Beschreibung der Trankwirkung. |
ZUTATEN
Wie eine eventuelle benötigte Anzahl ungleich eins dargestellt wird ist unbekannt.
Attribut | Typ | Beschreibung |
---|---|---|
--- | Liste |
Je Listeneintrag in der Liste wird eine Zutat angegeben.
Die Menge der Zutat ist 1. Zum Beispiel: ZUTATEN "Flachwurz" "Fjordwuchs" |
ISLAND islandID
Kommt nicht in der Konfiguratin "Standard" vor.
ID | Bedeutung | Beschreibung |
---|---|---|
islandID | Inselnummer | Die Nummer der Insel. |
Attribut | Typ | Beschreibung |
Name | string | Der Name der Insel. |
REGION xyz
Eine Region ist dann im serverseitig generierten Report aufgelistet, wenn sich entweder eine eigene Einheit in dieser befindet, oder einer der beim visibility-Attribut aufgelisteten Fälle eintritt.
ID | Bedeutung | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
x | X-Koordinate | Die X-Koordinate der Region. | ||||||||
y | Y-Koordinate | Die Y-Koordinate der Region. | ||||||||
z | Z-Koordinate | Die Z-Koordinate der Region, auch Ebene genannt. Ebene 0 ist zum Beispiel der Normalraum (Dann wird die Koordinate vom Server garnicht angegeben). Ebene 1 ist der "Astralraum". | ||||||||
Attribut | Typ | Beschreibung | ||||||||
id | int |
Die global eindeutige und unveränderliche Nummer der Region. Ursprünglich
eingeführt um das Zusammenfügen mehrer Karten zu erleichtern. Reserviert: 0 ... id der Region unbekannt. Defaultwert: 0 Wertebereich: 1 bis 0xFFFFFFFF inklusive (unsigned 32bit int). Seit Report 570 | ||||||||
Name | string | Der Name der Region. Entweder automatisch vom Server vergeben, oder durch den BENENNE REGION Befehl bestimmt. | ||||||||
Terrain | string | Bezeichnet die Art des Terrains in dieser Region. Bekannte Werte sind: "Ozean", "Ebene", "Wald", "Hochland", "Gebirge", "Berge", "Wüste", "Sumpf", "Gletscher", "Vulkan", "Aktiver Vulkan", "Eisberg", "Feuerwand", "Nebel", "Dichter Nebel". | ||||||||
Insel | string/int |
Kommt nicht in der Konfiguration "Standard" vor.
Zwischen dem Vorlage-Entwickler (Glurak) und den Magellanentwicklern
hat man sich auf ein einheitliches System geeinigt, das allerdings
noch nicht implementiert ist. Aktuell sind noch folgende beiden Systeme etabliert: Die Mercator-Methode, ist das zuerst vom Client Mercator
etablierte System. Hierbei wird wie in der erstgenannten Methode
ein Insel-Attribut in einer der Regionen einer Insel angelegt, welches
jedoch direkt den Inselnamen als String enthält. Die von Magellan angewendete Methode verwendet
auch ein Insel-Attribut mit
einem String als Wert, doch wird der Inhalt des Strings zwingend
als base10 Integer interpretiert. Die weitere Beschreibung der
Insel geschieht hier über einen
ISLAND-Block. | ||||||||
Beschr | string |
Die per BESCHREIBE REGION Befehl gegebene Beschreibung der Region. Defaultwert: "" | ||||||||
visibility | string |
Dieses Attribut besagt durch welchen Umstand die Region von den
eigenen Einheiten eingesehen wird, falls sich nicht sowieso eine
eigene Einheit in der Region befindet (und man folglich die Region
komplett einsieht, sieht man von getarnten Einheiten ab). Bei einem serverseitig generierten Report gibt es folgende Möglichkeiten:
Defaultwert: "" | ||||||||
Baeume | int |
Die Anzahl der Bäume in dieser Region. Siehe auch den
RESOURCE-Block. Defaultwert: Ist kein Baeume-Attribut vorhanden, so gelten die Angaben eines entsprechenden RESOURCE-Blocks. Ist dieser auch nicht vorhanden, ist der Wert 0. | ||||||||
Schoesslinge | int |
Die Anzahl der Schößlinge in dieser Region. Siehe auch den
RESOURCE-Block. Defaultwert: Ist kein Schoesslinge-Attribut vorhanden, so gelten die Angaben eines entsprechenden RESOURCE-Blocks. Ist dieser auch nicht vorhanden, ist der Wert 0. | ||||||||
Mallorn | int |
Wenn ungleich 0, handelt es sich in dieser Region nicht um normale
Bäme sondern um Mallorn. Defaultwert: 0 | ||||||||
Bauern | int |
Die Anzahl der Bauen in dieser Region. Defaultwert: 0 | ||||||||
Pferde | int |
Die Anzahl der Pferde in dieser Region. Defaultwert: 0 | ||||||||
Silber | int |
Das Regionssilber dieser Region. (Das ist die Summe allen Silbers
welches den Bauern dieser Region gehört). Defaultwert: 0 | ||||||||
Unterh | int |
Der maximale Wert, welcher mit dem Befehl UNTERHALTE
eingenommen werden kann. Defaultwert: 0 | ||||||||
Rekruten | int |
Die maximale Anzahl von Bauern, die insgesamt mit dem
REKRUTIEREN Befehl rekrutiert werden können. Defaultwert: 0 | ||||||||
Lohn | int |
Der Lohn, welche eine mittels ARBEITEN arbeitende
nicht-Ork-Einheit pro Person verdient. Für die Ork-Werte
existiert auf www.eressea.de
eine Umrechnungstabelle. Defaultwert: 0 | ||||||||
Steine | int |
Die Anzahl der Steine, welche auf der aktuellen Stufe abgebaut werden
können. Die Stufe ist nur über den
RESOURCE-Block zu
erfahren. Defaultwert: Ist kein Steine-Attribut vorhanden, so gelten die Angaben eines entsprechenden RESOURCE-Blocks. Ist dieser auch nicht vorhanden, ist der Wert 0. | ||||||||
Eisen | int |
Wie Steine. Defaultwert: Ist kein Eisen-Attribut vorhanden, so gelten die Angaben eines entsprechenden RESOURCE-Blocks. Ist dieser auch nicht vorhanden, ist der Wert 0. | ||||||||
Laen | int |
Befindet sich in dieser Region Laen, wird hier die Anzahl des
gesichteten Laens angezeigt. Wie bei Stein und Eisen, ist aber der
zugehörige RESOURCE-Block bevorzugt zu
verwenden. Defaultwert: Ist kein Laen-Attribut vorhanden, so gelten die Angaben eines entsprechenden RESOURCE-Blocks. Ist dieser auch nicht vorhanden, ist der Wert 0. |
BURG buildID
ID | Bedeutung | Beschreibung |
---|---|---|
buildID | Gebäudenummer | Die Nummer des Gebäudes. Diese Zahl ist innerhalb der Menge aller Gebäude eindeutig. |
Attribut | Typ | Beschreibung |
Typ | string | Die Art des Gebäudes. Bekannte Werte sind: "Akademie", "Befestigung", "Bergwerk", "Burg", "Damm", "Festung", "Grundmauern", "Hafen", "Handelsposten", "Karawanserei", "Leuchtturm", "Magierturm", "Monument", "Pferdezucht", "Sägewerk", "Schmiede", "Steinbruch", "Taverne", "Tunnel", "Turm" und "Zitadelle". |
wahrerTyp | string |
Ist bei einem Gebäude der wahre Typ verborgen, kann
ihn aber trotzdem erkennen, wird der wahre Typ in diesem
Attribut genannt und im Attribut "Typ" der
vorgetäuschte Typ.
Existiert das Attribut nicht, so kann man entweder den wahren Typen des Gebäudes nicht erkennen, oder der Typ ist nicht verborgen. |
Name | string | Der Name des Gebäudes. |
Beschr | string |
Die per BESCHREIBE BURG Befehle gesetzte Beschreibung. Defaultwert: "" |
Groesse | int | Die Größe des Gebäudes. |
Besitzer | int |
Die Einheitennummer der besitzenden Einheit. Defaultwert: Bei Nichtnennung des Attributs im Report ist dieses Gebäude ohne Besitzer. |
Partei | int |
Die Parteinummer der besitzenden Partei Defaultwert: Bei Nichtnennung des Attributs im Report ist dieses Gebäude ohne Besitzer. |
SCHIFF shipID
ID | Bedeutung | Beschreibung | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
shipID | Schiffsnummer | Die innerhalb der Menge alles Schiffe eindeutige Nummer des Schiffes. | ||||||||||||
Attribut | Typ | Beschreibung | ||||||||||||
Name | string | Der Name des Schiffes. | ||||||||||||
Beschr | string |
Die Beschreibung des Schiffes. Defaultwert: "" | ||||||||||||
Typ | string | Die Art des Schifes. Bekannte Werte sind: "Boot", "Langboot", "Drachenschiff", "Karavelle" und "Tireme". | ||||||||||||
Groesse | int | Die Größe des Schiffes. | ||||||||||||
Schaden | int |
Der Schaden des Schiffes in Prozent. Defaultwert: 0 | ||||||||||||
Kapitaen | int |
Die Nummer der Kapitänseinheit. Defaultwert: Bei Nichtnennung des Attributs im Report ist dieses Gebäude ohne Kapitän. | ||||||||||||
Partei | int |
Die Parteinummer der Kapitänseinheit. Defaultwert: Bei Nichtnennung des Attributs im Report ist dieses Gebäude ohne Kapitän. | ||||||||||||
Ladung | int |
Die Beladung des Schiffes in GE. Wird in Zukunft entfernt. | ||||||||||||
MaxLadung | int |
Die maximale Beladung des Schiffes in GE. Wird in Zukunft entfernt. | ||||||||||||
cargo | int |
Die Beladung des Schiffes in Silberstückäquivalent. Defaultwert: Ist dieses Attribut nicht im CR, so ist das Gewicht der Ladung unbekannt. Seit Report 458. | ||||||||||||
capacity | int |
Die maximale Beladung des Schiffes in
Silberstückäquivalent. Defaultwert: Ist dieses Attribut nicht im CR, so ist die maximale Ladung unbekannt. Seit Report 458. | ||||||||||||
Kueste | int |
Bezeichnet die Küste an der sich das Schiff befindet.
Defaultwert: Bei Nichtnennung des Attributs befindet sich das Schiff auf keiner Küste. |
PREISE
Ist kein PREISE-Block für eine Region vorhanden, kann man hier Luxusgüter weder kaufen noch verkaufen.
Attribut | Typ | Beschreibung |
---|---|---|
Balsam | int | Der Preis für Balsam. |
Gewürz | int | Der Preis für Gewürze. |
Juwel | int | Der Preis für Juwelen. |
Myrrhe | int | Der Preis für Myrrhe. |
Öl | int | Der Preis für Öl. |
Seide | int | Der Preis für Seide. |
Weihrauch | int | Der Preis für Weihrauch. |
RESOURCE resID
ID | Bedeutung | Beschreibung |
---|---|---|
resID | Resourcentyp |
Die resID ist ein hash des Wertes vom type-Attribut, und sagt
somit aus um welche Resource es sich handelt. Die Hashfunktion
ist aber nicht fix, und könnte sich im laufe der Zeit
ändern.
Bei allen Resourcen existiert noch ein Attribut direkt im REGION-Block, welches früher verwendet wurde und noch aus Kompatibilitätsgründen beibehalten wird. Die Informationen aus dem RESOURCE-Block (so vorhanden) sind gegenüber den alten Attributen bevorzugt zu behandeln. |
Attribut | Typ | Beschreibung |
type | string |
Der Typ der Resource. Der Wert hier entspricht der Bedeutung der resID, also "Eisen" wenn die resID 235898859 ist, und so fort. Es gibt also die Werte "Eisen", "Schößlinge", "Mallornschößlinge", "Mallorn", "Bäume", "Laen" und "Steine" mit den entsprechenden resID Werten. |
skill | int | Der Mindesttalentwert den man benötigt um diese Resource zumindest teilweise abzubauen. |
number | int | Die gefundene Menge der Resource. |
GRENZE grenzID
ID | Bedeutung | Beschreibung |
---|---|---|
grenzID | Nummer | Eine durchlaufende Nummer, ohne erkennbarer tiefgründigeren Bedeutung. |
Attribut | Typ | Beschreibung |
typ | string |
Die Art der Grenze. Bekannte werte sind: "Straße" und "Feuerwand". |
richtung | int | Die von der Grenze betroffene Himmelsrichtung. 0 .. Nordwesten, 1 .. Nordosten, usw. |
prozent | int | Der Grad der Fertigstellung dieser Grenze (zB Strassen wirken erst bei 100%). |
EFFECTS
Attribut | Typ | Beschreibung |
---|---|---|
--- | Liste |
Pro Listeneintrag in wird ein Effekt gespeichert. Eine Zeile hat hierbei folgendes besonderes Format: EFFECT => "\"" EFFECT_STR "(" NUMMER ")" | "\"" EFFECT_NUM EFFECT_STR"\"" EFFECT_STR => {ANY_ASCII_CHAR} EFFECT_NUM => NUMBER NUMMER => BASE36 [BASE36 [BASE36 [BASE36]]] BASE36 => "0" | ... | "9" | "a" | ... | "z" | "A" | ... | "Z" Der EFFECT_STR Teil ist hierbei ein vom genauen Effekt abhängiger String, der vom Spieler lesbar ist. Der NUMMER Teil ist eine base36 Zahl, welche die Nummer des Effekts angibt. Die Nummer eines Effektes ist fix vergeben, hält der Effekt also über mehrere Runden an, so findet sich beim entsprechenden Listeneintrag immer die selbe Nummer. Es gibt alternativ dazu auch Effekte von Alchemistischen Tränken, welche keine Effekt-Nummer haben, sondern durch deren Anzahl und einen vom Spieler lesbaren String gegeben sind. |
DURCHSCHIFFUNG
Attribut | Typ | Beschreibung |
---|---|---|
--- | Liste |
Pro Listeneintrag wird ein Schiff (Name plus Nummer) in
folgender Form genannt:
DURCHSCHIFFUNG => "\"" NAME "(" NUMMER ")" NAME => {ANY_ASCII_CHAR} NUMMER => BASE36 [BASE36 [BASE36 [BASE36]]] BASE36 => "0" | ... | "9" | "a" | ... | "z" | "A" | ... | "Z"NAME ist naheliegender Weise der Name des Schiffes, und die base36 NUMMER in Klammern die Schiffsnummer. |
DURCHREISE
Attribut | Typ | Beschreibung |
---|---|---|
--- | Liste | Pro Listeneintrag wird eine Einheit genannt. Das Format entspricht dem des DURCHSCHIFFUNG-Blocks. |
EINHEIT unitID
ID | Bedeutung | Beschreibung | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
unitID | Einheitennummer | Die, in Bezug auf die Menge aller Einheiten, eindeutige Nummer dieser Einheit. | ||||||||||||
Attribut | Typ | Beschreibung | ||||||||||||
Name | string | Der Name der Einheit. | ||||||||||||
Beschr | string |
Die Beschreibung der Einheit. Defaultwert: "" | ||||||||||||
privat | string |
Die private Beschreibung der Einheit. Defaultwert: "" | ||||||||||||
gruppe | int |
Die Nummer der Gruppe (grouID), zu der diese Einheit gehört. Defaultwert: 0 (keine Gruppe) | ||||||||||||
Partei | int |
Die Parteinummer zu der diese Einheit gehört, oder sich ausgibt
zu gehören. Default: Ist das Attribut nicht im CR, ist die Partei unbekannt. | ||||||||||||
Parteitarnung | int | Hat den Wert 1, wenn diese Einheit parteigetarnt ist. Sonst ist nichts bekannt. | ||||||||||||
Anderepartei | int |
Wenn die wahre Parteizugehörigkeit dieser Einheit bekannt ist
(entweder eine eigene Einheit oder hinreichende HELFE-Stati): Die Parteinummer jener Partei, als welche sich diese Einheit parteitarnt. Default: Der genannte Fall trifft nicht zu. | ||||||||||||
Verraeter | int |
1, wenn die Einheit fremd ist und sich als eigene Partei parteitarnt,
und die wahre Parteizugehörigkeit nicht bekannt ist (es sich
also um einen Verräter handelt). Default: 0 (kein Verräter) | ||||||||||||
typprefix | string |
Der Rassenpräfix dieser Einheit. Bei der Zusammensetzung mit
dem Rassentyp ist zu beachten, dass die Rasse (Typ-Attribut) der
Einheit mit einem Großbuchstaben beginnt, dieser also vorher
in einen Kleinbuchstaben umzuwandeln ist. Defaultwert: "" | ||||||||||||
Anzahl | int | Die Anzahl von Personen in dieser Einheit. | ||||||||||||
Typ | string | Die Rasse der Personen dieser Einheit. Eventuell noch mit dem Rassenpräfix (typprefix-Attribut) modifiziert. | ||||||||||||
wahrerTyp | string |
Die echte Rasse der Personen dieser Einheit, zB wenn sich ein
Dämon Rassengetarnt hat. Defaultwert: Ist dieses Attribut nicht im CR vorhanden, entspricht der wahrerTyp dem Typ. | ||||||||||||
Burg | int |
Die Nummer der Burg, in welcher sich die Einheit befindet. Defaultwert: 0 (Einheit ist in keiner Burg) | ||||||||||||
Schiff | int |
Die Nummer des Schiffes, in welchem sich die Einheit befindet. Defaultwert: 0 (Einheit ist in keinem Schiff) | ||||||||||||
bewacht | int |
Ungleich 0, wenn diese Einheit die Region bewacht. Defaultwert: 0 | ||||||||||||
temp | int |
Wenn vorhanden, enthält die TEMP-ID der Einheit welche sie
vorige Runde hatte. Defaultwert: War vorige Runde keine TEMP-Einheit. | ||||||||||||
alias | int |
Wenn vorhanden, gibt die unitID der
Einheit in der vorigen Runde an. Defaultwert: Wenn nicht vorhanden, hatte sich die unitID nicht verändert. | ||||||||||||
Kampfstatus | int |
Der Kampfstatus dieser Einheit.
| ||||||||||||
unaided | int |
Ungleich 0, wenn der Einheit nicht automatisch bei einer Attacke gegen
sie geholfen wird (siehe den Befehl KÄMPFE HELFE NICHT)
Defaultwert: Ist das Attribut nicht im CR, so ist der unaided-Status entweder auf 0 gesetzt oder unbekannt. | ||||||||||||
Aura | int |
Wieviel Aura diese Einheit im Augenblick hat. Defaultwert: Ist dieses Attribut nicht im CR, so hat die Einheit keine Aura (Oder die Auramenge ist unbekannt). | ||||||||||||
Auramax | int |
Der Maximalwert, bis zu welchem Aura regeneriert werden kann. Defaultwert: Ist dieses Attribut nicht im CR, so hat die Einheit keine Aura (Oder die Auramax Menge ist unbekannt). | ||||||||||||
hp | string |
Ein String in menschenlesbarer Form der den gesundheitlichen
Zustand der Einheit beschreibt. Zur Zeit bekannt sind
"erschöpft", "verwundet" und
"schwer verwundet". Defaultwert: Ist dieses Attribut nicht im CR, so ist die Einheit bei voller Gesundheit oder der Gesundheitsstatus ist unbekannt. | ||||||||||||
weight | int |
Das Gesamtewicht der Einheit (Personen plus Gegenstände)
in Silberstückäquivalent. Defaultwert: Ist dieses Attribut nicht im CR, so ist das Gewicht unbekannt. Seit Report 458. | ||||||||||||
familiarmage | int |
Falls diese Einheit ein Vertrauter ist, wird hier die Einheiten-Nummer
des zugehörigen Magiers angegeben. Defaultwert: Ist dieses Attribut nicht im CR, so ist diese Einheit kein Vertrauter. Seit Report 468 (oder ein bischen früher). |
COMMANDS
Attribut | Typ | Beschreibung |
---|---|---|
--- | Liste | Je Listeneintrag wird eine Befehlszeile angegeben. |
TALENTE
(Hinweis: Welche Talente es alle gibt, ist unbekannt).
Attribut | Typ | Beschreibung |
---|---|---|
Holzfällen | int-triple |
Der erste Wert ist in allen neueren Report zu ignorieren (siehe
noskillpoints-Attribut des VERSION-Blocks).
In den älteren Computerreports gibt er die Anzahl der gesammelten
Lerntage in diesem Talent an. Der zweite Wert gibt die aktuelle Stufe in diesem Talent an (kann auch 0 sein, wenn es einmal gelernt wurde, aber durch Mali noch auf 0 ist). Der nicht immer vorhandene dritte Wert gibt die Veränderung der Talentstufe im Vergleich zur Vorwoche an. Defaultwert: Default des dritten Int-Werts ist 0. Wird ein Talent nicht genannt, wird es nicht beherrscht, oder die Talente dieser Einheit sind gänzlich unbekannt. |
SPRUECHE
Attribut | Typ | Beschreibung |
---|---|---|
--- | Liste | Pro Listeneintrag wird der Name eines Zaubers genannt. |
KAMPFZAUBER kampfzID
ID | Bedeutung | Beschreibung |
---|---|---|
kampfzID | Kampfzaubertyp |
0 ... Präkampfzauber 1 ... Kampfzauber 2 ... Postkampfzauber |
Attribut | Typ | Beschreibung |
name | string | Der Name des Kampfzaubers. |
level | int | Die Stufe, auf der dieser Zauber im Kampffall gezaubert werden wird. |
GEGENSTAENDE
Aus Gründen der Übersichtlichkeit nur beispielhaft an Holz dargestellt:
Attribut | Typ | Beschreibung |
---|---|---|
Holz | int |
Der Wert bezeichnet die Menge des genannten Gegenstandes
bei dieser Einheit. Defaultwert: 0 |
EINHEITSBOTSCHAFTEN
Einheiten können mittels den Varianten des BOTSCHAFT Befehls Botschaften erhalten, welche hier aufgelistet werden.
Attribut | Typ | Beschreibung |
---|---|---|
--- | Liste | Je Listeneintrag wird eine Botschaft gelistet. |
SCHEMEN xyz
ID | Bedeutung | Beschreibung |
---|---|---|
x | X-Koordinaten | Die X-Koordinate der schemenhaft gesichteten Region im Normalraum. |
y | Y-Koordinaten | Die Y-Koordinate der schemenhaft gesichteten Region im Normalraum. |
z | Z-Koordinaten | Die Z-Koordinate der schemenhaft gesichteten Region im Normalraum. |
Attribut | Typ | Beschreibung |
Name | string | Der Name der schemenhaft gesichteten Region im Normalraum. |
MESSAGETYPE type
ID | Bedeutung | Beschreibung |
---|---|---|
type | Nachrichtentyp |
Mehrere Nachrichten sind jeweils einem Typus zugeordnet. Diese Zahl
ist zwar eindeutig innerhalb eines Reports, kann sich aber von Woche
zu Woche ändern (und tut dies auch regelmäßig). Die Ereignisse um Runde 460 haben gezeigt, dass die Message-IDs eher fix geworden sind. Dies ist aber nicht sicher. |
Attribut | Typ | Beschreibung |
text | string |
Dieser String gibt an, wie der MESSAGE-Block
"gerendert" (also durch einen String dargestellt)
wird
(siehe rendered-Attribut des MESSAGE-Blocks)
Generell besteht der Wert des text-Attributs aus reinem Text, welcher 1:1 übernommen wird, und Text der zu ersetzenden ist. Der Wert des String-Attributs nimmt diese Gestalt an (Siehe bei Beschreibung des Attribut-Syntax wegen Hochkomma-escapen): TEXT => "\"" { ATTR | FUNC | CHAR } "\"" EXPR => ATTR | FUNC | STRING | CONST ATTR => "$" ALPHA { ALPHANUM } | "${" {WS} ALPHA { ALPHANUM } {WS} "}" FUNC => "$int" {WS} "(" {WS} EXPR {WS} ")" | "$if" {WS} "(" {WS} EXPR {WS} "," {WS} EXPR {WS} "," {WS} EXPR {WS} ")" | "$eq" {WS} "(" {WS} EXPR {WS} "," {WS} EXPR {WS} ")" | "$unit" {WS} "(" {WS} EXPR {WS} ")" | "$region" {WS} "(" {WS} EXPR {WS} ")" | "$building" {WS} "(" {WS} EXPR {WS} ")" | "$ship" {WS} "(" {WS} EXPR {WS} ")" | "$faction" {WS} "(" {WS} EXPR {WS} ")" | "$resource" {WS} "(" {WS} EXPR {WS} "," {WS} EXPR {WS} ")" | "$resources" {WS} "(" {WS} EXPR {WS} ")" | "$order" {WS} "(" {WS} EXPR {WS} ")" | "$isnull" {WS} "(" {WS} EXPR {WS} ")" | "$strlen" {WS} "(" {WS} EXPR {WS} ")" | "$add" {WS} "(" {WS} EXPR {WS} "," {WS} EXPR {WS} ")" | "$direction" {WS} "(" {WS} EXPR {WS} ")" | "$localize" {WS} "(" {WS} EXPR {WS} ")" | "$skill" {WS} "(" {WS} EXPR {WS} ")" | "$spell" {WS} "(" {WS} EXPR {WS} ")" | "$sace" {WS} "(" {WS} EXPR {WS} ")" | "$weight" {WS} "(" {WS} EXPR {WS} ")" STRING => "\"" EXPR "\"" CONST => {NUM} { {WS} {NUM} } CHAR => ALPHA | NUM | WS | SYMB | UMLAUT ALPHANUM => ALPHA | NUM ALPHA => "a" | ... | "z" | "A" | ... | "Z" UMLAUT => "ä" | "ü" | ... | "ß" NUM => "0" | ... | "9" WS => " " SYMB => "." | "," | "\\$" | HTAB HTAB => 0x09 Die mit "$" beginnenden Teile sind nun speziell zu behandelnde Funktionsaufrufe und Verweise auf ein Attribut im MESSAGE-Block. Funktionen$int( expr ) $if( condition, expr1, expr2 ) $eq( expr1, expr2 ) $unit( expr ) $region( expr ) $building( expr ) $ship( expr ) $faction( expr ) $resource( expr1, expr2 ) $order( expr ) $isnull( expr ) $strlen( expr ) $add( expr1, expr2 ) $direction( expr ) $localize( expr ) $spell( expr ) $skill( expr ) $race( expr ) $weight( expr ) $resources( expr ) VerweiseVerweise auf Attribute des MESSAGE-Blocks sind nun alle jene speziell behandelten Teile, die keine Funktion sind. Sie beginnen also alle ebenfalls mit einem "$" Zeichen, dem das Tag des Attributs folgt. Der Verweis nimmt dann den Wert des Attributs an, wobei ein nicht Vorhanden sein des Attributs mit diesem Tag einen speziellen NULL Wert ergibt (Zum Beispiel bei der $isnull() Funktion von Bedeutung). Der zurückgegebene Wert ist Typbehaftet, ist also ein Integer (int), ein Integer-Tupel (zB int-Trippel) oder ein String. |
section | string | Die Kategorie, in der Nachrichten dieses Types einzuordnen sind. Bekannte Bereiche sind: "events", "errors", "economy", "magic", "production" und "study". |
TRANSLATION
Es existiert also für jeden Gegenstand, für jedes Talent, und noch etliche andere Begriffe ein String-Attribut, das den im Report verwendeten Namen als Tag, und die Übersetzung in die eingestellte Sprache als Wert enthält.
HOTSPOT
Markiert einen Hotspot innerhalb von Magellan, zu welchem man mit einem Klick springen kann.
ID | Bedeutung | Beschreibung |
---|---|---|
idx | Index | Nummer um die Hotspots untereinander eindeutig zu unterscheiden. |
Attribut | Typ | Beschreibung |
name | string | Enthält den Namen des Hotspots. |
coord | string (int) |
Gibt die Koordinaten des Hotspots (zu welchen gesprungen
wird) an. Entgegen des CR-Syntax, wird hier ein Int-Attribut innerhalb von doppelten Hochkomme (") geschrieben. |
EBNF-Syntax
Folgende EBNFs gelten global für dieses Dokument:STRING_VAL => "\"" STRING "\"" INT_VAL => NUMBER {{WS} NUMBER} STRINGCHAR => Any normal Character (only printables, no NL or CR, etc). Nothing exact is specified. STRING => {STRINGCHAR} NUMBER => ["-"] DIGIT {DIGIT} ALPHANUM => ALPHA | DIGIT ALPHA => UPPERALPHA | LOWERALPHA | UMLAUTS UPPERALPHA => "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" LOWERALPHA => "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" UMLAUTS => "ä" | "ö" | "ü" | "ß" | "Ä" | "Ö" | "Ü" DIGIT => "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" WS => " "
Changelog
- 2008-04-30 19:13
- REGION: Attribut "id" hinzugefügt.
- EINHEIT: Attribut "Parteitarnung" hinzugefügt.
- EINHEIT: Attribut "Partei" hat nun reservierten Wert.
- MESSAGETYPE: Die Bedeutung fast aller Funktionen korrigiert. Thanks to Ralf Duckstein! - 2007-11-16 20:42
- EFFECTS um Alchimistische Tränkte erweitert. Thanks to Ralf Duckstein! - 2007-07-03 13:48
- VERSION um das Attribut "charset" erweitert. - 2007-02-19 00:56
- ZAUBER um das Attribut "syntax" erweitert. - 2006-12-08 21:33
- HOTSPOT hinzugefügt. - 2006-11-24 12:15
- EBNF überarbeitet - 2006-11-22 18:08
- REGION->Mallorn ist int (bool gibt es nicht). - Quicklink at start - TODO: EBNF im ganzen dokument anpassen (ist nicht wirklich richtig) - 2006-11-17 13:08
- Erklärung, was ein eventueller dritter Int-Wert eines Attriuts im Block TALENTE bedeutet. Thanks to Fiete!
- Bug im EBNF der Attribute: Es war möglich, dass ein Tag mit einem WhiteSpace endet.
- Umformulierung der Erklärung über die Gesalt eines Attributs. - 2006-11-12 00:35
Attribute "heroes" und "max_heroes" beim Block PARTEI hinzugefügt. Thanks to Fiete! - 2006-09-04 20:20
Attribut "wahrerTyp" beim Block BURG hinzugefügt. Thanks to Fiete! - 2006-06-07 19:48
Attribut "alias" und "temp" beim EINHEIT Block hinzugefügt. Thanks to Perat! - 2006-04-25 12:30
Attribut "familiarmage" beim EINHEIT Block hinzugefügt. Thanks to Gulrak! - 2006-02-12 00:39
Anmerkung bei der ID vom MESSAGETYPE Block hinzugefügt. - 2006-02-08 02:17
"Verraeter"- und "Anderepartei"-Attribut beim EINHEIT Block hinzugefügt. - 2006-01-19 00:54
"weight" Attribut beim EINHEIT Block, und "cargo" sowie "capacity" Attribut beim SCHIFF Block hinzugefügt. - Positionen im CR noch nicht korrekt, und Konflikt mit Ladung/MaxLadung noch nicht gelöst. - 2006-01-15 18:45
"visibility" Attribut bei REGION Block geupdated. - 2005-10-27 18:00
"age" Attribut bei PARTEI Block hinzugefügt. - 2005-08-07 03:39
Block GRENZE hinzugefügt. - 2005-08-01 00:09
Block EINHEITSBOTSCHAFTEN wird durch MESSAGETYPE ersetzt.