X3: Albion Prelude - Ein Überlebensratgeber

Allgemeine Diskussionen rund um X-BTF, X-Tension, X²: Die Bedrohung, X³: Reunion, X³: Terran Conflict und X³: Albion Prelude.

Moderator: Moderatoren für Deutsches X-Forum

Locked
User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 24949
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus » Sat, 4. Feb 12, 18:44

Benutzeroberfläche

Mehr und mehr von Euch nutzen große, hoch-auflösende Bildschirme zum Spielen der X-Spiele. Aber bis jetzt blieben die spielinternen Menüs durchweg klein, oft nur einen kleinen Teil des verfügbaren Platzes einnehmend. Während wir dieses Problem angegangen sind, haben wir auch die Gelegenheit ergriffen, einige andere Änderungen an den Menüs vorzunehmen, damit sie einfacher gelesen und genutzt werden können.

Größe

Alle spielinternen Menüs wurden darauf überprüft, inwiefern sie von einer Größenänderung profitieren würden. Als Ergebnis dieser Überprüfungen haben viele Menüs die gleiche Größe wie zuvor, ein oder zwei haben eine feste Höhe, sind aber breiter als zuvor, einige werden sich in Abhängigkeit der verfügbaren Bildschirmgröße in der Höhe ausdehnen, behalten dabei aber ihre Breite und ein paar Besondere dehnen sich sowohl in der Höhe als auch in der Breite aus, um die volle Bildschirmgröße zu nutzen.

Karten

Die Menüs, die sich am meisten verändert haben, sind die Karten. Diese dehnen sich nun aus, um so viel vom Bildschirm einzunehmen wie nur möglich, ohne dabei ihre allgemeine Form zu verlieren.

Die Universumskarte nimmt so viel Fläche vom Bildschirm ein, wie nur möglich, sodass Du eine bessere Übersicht erhältst, wo Du Dich zurzeit im Universum befindest. Das Informationsfenster rechts daneben zeigt nicht besonders viele Informationen an, weshalb es sich nicht ausdehnt. Die andere große Änderung an der Universumskarte ist die vereinfachte Navigation zu einem Sektor, dessen Namen Du kennst. Beginne einfach, einen Sektornamen einzutippen, und du wirst zu diesem gebracht! Wenn es mehrere Sektoren gibt, die mit den eingetippten Buchstaben übereinstimmen, so werden sie im Informationsfenster aufgelistet. Du kannst dann entweder weiter tippen oder sie mit der normalen Maus- oder Tastaturmenüsteuerung auswählen. Drückst Du "Esc" oder wartest einfach ein paar Sekunden, werden der eingetippte Text und die Liste wieder gelöscht. Eine letzte, kleine Änderung an der Universumskarte ist, dass Kriegssektoren Orange markiert sind.

Die Sektorkarte füllt nun auch so viel Bildschirmfläche aus, wie möglich. Da die Liste der Objekte in einem Sektor recht lang werden kann, dehnt sie sich in der Höhe soweit wie möglich aus, ohne dabei das Radar zu überdecken, weswegen sie unter Umständen etwas kürzer als die Karte sein kann. Davon abgesehen hat sich die Sektorkarte nicht großartig verändert.

Wenn Dir die neuen großen Karten die Sicht versperren, kannst Du mit der Taste zur Größenänderung (standardmäßig F5) zwischen den alten und neuen Größen hin- und herschalten. Nutzt Du lieber die Maus, gibt es ein kleines Zeichen in der unteren rechten Ecke der Karte, auf das Du klicken kannst.

Menüs

Bekannte Menüs, die die verfügbare Bildschirmhöhe ausnutzen, sind:

• Besitztümer
• Handel
• Stationseinstellungen verändern
• Börsen
• Schnäppchen-/Verkaufspreisfinder
• Logbuch
• Staffeln
• Steuerung
• AL Optionen
• Script Editor
• Mission Director

Wie Karten nutzen auch Graphen die gesamte verfügbare Bildschirmfläche. Das Informationsfenster, das Beschreibung und Legende der Graphen enthält, dehnt sich hingegen nicht aus. Graphen können zudem nicht verkleinert werden, da sie sonst unlesbar wären!

Verschiedene Menüs haben zudem die gleiche Behandlung, wie das Informationsfenster rechts neben der Sektorkarte erhalten. Das heißt, dass Schiffe neben ihren Klassen-Zeichen gelistet und mehr Informationen angezeigt werden, um die Schiffe auf den ersten Blick identifizieren zu können. Menüs, die diese Behandlung erhalten haben, sind:

• Handel (für Schiffswerften)
• Stationseinstellungen verändern (für das Spieler HQ)
• Gelandete Schiffe
• Schiffe im Besitz

[2.0] Ach, und die langjährige Frustration, beim Versuch mehrere gleiche Zeichen direkt hintereinander einzutippen, hat nun endlich ein Ende gefunden! "Thereshal*Pause*lbewings" gehört der Vergangenheit an.

Last edited by X2-Illuminatus on Sat, 4. Feb 12, 19:02, edited 1 time in total.

User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 24949
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus » Sat, 4. Feb 12, 18:47

Scriptbefehle

Da es nun möglich ist, auf dem Spielerkonto viel mehr Geld zu lagern, werden neue Scriptbefehle benötigt, um mit diesem Konto zu interagieren. Beachte, dass die alten Befehle immer noch funktionieren, jeden Beitrag über 2 Milliarden Credits aber als genau 2 Milliarden Credits anzeigen werden. Nutze die neuen Scriptbefehle, um die genauen Werte zu erhalten.

Code: Select all

• %0get billions of credits in player account 
 • %0get amount of credits under a billion in player account 
 • %0get full amount of credits in player account formatted as string: include separators %1, use millions suffix for very large numbers %2 
 • %0format large number pair as string: billions %1, units %2, include separators %3, use millions suffix for very large numbers %4
Das System für Custom-Menüs wurde erweitertet, um Scripts noch mehr Kontrolle über das Aussehen und Verhalten solcher Menüs zu geben.

Code: Select all

• add info line section to menu: %0 
 • add info line heading to menu: %0, heading=%1 
 • %0create menu return value: open menu, menu script=%1, script args=%2 
 • %0create menu return value: run script %1, script args=%2 
 • add trade bar to menu: %0, text=%1, min=%2, max=%3, current=%4, return value=%5, left text=%6, right text=%7 
 • add new grouping to menu: %0, text=%1, open=%2 
 • add end grouping to menu: %0 
 • set menu option: %0, maximum infolines=%1 
 • set menu option: %0, page up/down keys for info=%1 
 • %0create menu return value: command 'Open All Groups' 
 • %0create menu return value: command 'Close All Groups' 
 • add non selectable menu item: %0, text=%1 
 • set menu option: %0, use hover line=%1 
 • set menu option: %0, maximum menu height=%1 lines
Der Script Editor hat vollen Zugriff auf das Graphensystem. Graphen können der Liste an verfügbaren Graphen für ein bestimmtes Objekt oder einen Objekttypen hinzugefügt oder von dieser entfernt werden. Die Einträge in dieser Liste rufen dann weitere Scripts auf, um dann die eigentlich Graphen darzustellen. Mit dem Custom-Menü-System ist es zudem für diese Scripts möglich, Optionsmenüs anzuzeigen, ehe die endgültigen Daten dargestellt werden.

Code: Select all

• add player graph: script=%0 pageid=%1 textid=%2 group pageid=%3 group textid=%4 subgroup=%5 \(0-7\) 
 • remove player graph: script=%0 group pageid=%1 group textid=%2 
 • add class graph: class=%0 script=%1 pageid=%2 textid=%3 group pageid=%4 group textid=%5 subgroup=%6 \(0-7\) 
 • remove class graph: class=%0 script=%1 group pageid=%2 group textid=%3 
 • %0 add object graph: script=%1 pageid=%2 textid=%3 group pageid=%4 group textid=%5 subgroup=%6 \(0-7\) 
 • %0 remove object graph: script=%1 group pageid=%2 group textid=%3 
 • show graph using graph data array %0
Scriptbefehle können in begrenztem Maß mit der Börse interagieren.

Code: Select all

• %0 set stock exchange unlock state: %1 
 • %1%0 get stock exchange unlock state 
 • %0 get all unlocked stock exchanges 
 • %1%0 get owned share count 
 • %0 set owned share count: %1 
 • set stock exchange corporate reports menu item: Enabled=%0 
 • set stock exchange company reports menu item: Enabled=%0 
 • set stock exchange commodity reports menu item: Enabled=%0 
 • %1%0 is stock exchange accessible
Für einige praktische Statistiken, die von Graphen und der Börse benutzt werden, gibt es Scriptbefehle, um die Berechnungen zu vereinfachen. Als Ergebnis können nun auch Deine Scripts auf diese Daten zugreifen.

Code: Select all

• %0get trade stats for sectors: %1, only include these wares: %2, treat docks as producers: %3, include player docks: %4 
 • %0get trade stats for sector: %1, only include these wares: %2, treat docks as producers: %3, include player docks: %4 
 [2.0] • %0get player ship usage time: %1 
 [2.0] • %0get player object killed count: %1 
 • %1%0 get player object count in sector: class=%2
Eine andere Reihe an Scriptbefehlen ermöglicht Dir den Zugriff auf die Flottenkontrollfunktionen, um das Verhalten Deiner Flotten anzupassen und zu erweiteren.

Code: Select all

• %1%0 get fleet ships: only currently with fleet: %2 
 • %0 set fleet leader: %1 
 • %0 remove from fleet 
 • %0 switch fleet leader to: %1 
 • %1%0 is in fleet 
 • %1%0 get fleet leader 
 • %1%0 is fleet leader 
 • %1%0 is currently with fleet 
 • %0 set with fleet: %1
Im andauernden Krieg zwischen den Terranern und den Völkern der Gemeinschaft gibt es eine bestimmte Menge an Daten über den Kriegsstatus. Mit einer Reihe von Scriptbefehlen kannst du diese Daten abfragen sowie am Krieg beteiligte Schiffe und Stationen identifizieren. Der Fortschritt des Krieges lässt sich auf diesem Weg allerdings nicht beeinflussen.

Code: Select all

• %1%0 get WarObject ID 
 • %0get name of current War State 
 • %0get name of next expected War State \(final choice may differ!\) 
 • %0is player currently observing War State 
 • %0get progress of current War State 
 • %0get start time of current War State 
 • %0get end time of current War State \(may change!\) 
 • %0did player observe currently active War State 
 • %0get duration of War State %1
Einige der hinzugefügten Scriptbefehle stehen mit dem Scriptsystem an sich in Verbindung. Du kannst nun benutzerdefinierte Optionsmenüs für Deine Scripts erstellen und auf sie über die spielinternen Optionen zugreifen. Zudem kannst Du die Existenz von Scripts überprüfen und hast weitere Optionen für das Zuweisen von Hotkeys zu Scripts.

Code: Select all

• add script options: script=%0 pageid=%1 textid=%2 
 • remove script options: script=%0 
 • %0does script exist: %1 
 • %0does script name exist: %1 
 • %0register hotkey: page=%1 id=%2, to call script %3 
 • %0get hotkey index, script: %1 
 • %0register hotkey: page=%1 id=%2, to call script name %3 
 • %0get hotkey index, script name: %1
Es gibt nun über 150 verschiedene Spielparameter, die durch die "globals.txt"- Datei beeinflusst werden können. Ein neuer Scriptbefehl verschafft dir Zugriff auf diese Werte. Beachte, dass dieser Befehl eine Einschränkung besitzt, er kann Dir den vom Spiel genutzt internen Standardwert nicht nennen, wenn es für diesen keinen Eintrag in der entsprechenden Datei gibt.

Code: Select all

• %0get global parameter value: parameter=%1 default=%2
Einige Scriptbefehle passen so richtig in keine Kategorie. Diese erweiterten hauptsächlich Deine Fähigkeiten, Informationen über das Universum und die Objekte in ihm zu erhalten.

Code: Select all

• %0get ship class from subtype: %1 
 • %0get race id for race: %1 
 • %1%0 mine is armed 
 • %0set mine armed state to %1 
 [2.0] • %1%0get complex hangar 
 • %0find gate: flags=%1, refobj=%2, max dist=%3, refpos=%4 object check=%5 
 • %1%0 is gate/beacon: %2 jumpable 
 • %0get minimum, %1, %2, %3, %4, %5 
 • %1%0 fire all turrets on target: %2, next target filter=%3 
 • add trade rank based on profit: race=%0 profit=%1 
 • %1%0 is sector visible 
 • %0 set job override name: %1 
 • %0get bullet flags of laser %1 
 • %0get colour code: red=%1 green=%2 blue=%3 transparency=%4 
 • %0get cluster sectors for race %1, startsector: %2, threshold: %3, only include known: %4


User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 24949
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus » Sat, 4. Feb 12, 18:49

Mission Director

Wie der Script Editor wurde auch der Mission Director erweitert, um relevante spielinterne Funktionen abzudecken. Zudem haben wir beschlossen, Euch Zugriff auf die Debugging-Werkzeuge des Mission Directors zu geben. Diese helfen Euch dabei, eure eigenen Missionen schneller und effizienter zu entwickeln.

Neue Aktionen, die wir hinzugefügt haben, sind:

Code: Select all

 • <set_notoriety> - setzt die Beziehung zwischen Nicht-Spieler Völkern 
• <activate_job> - Aktiviert einen Job, der in der Jobs-Datei als schlafend gesetzt ist 
• <set_war_reports> - aktiviert oder deaktiviert Kriegsberichte (Der Spieler kann dies überschreiben und sie vollständig ausschalten) 
• <set_override_name_flags> - legt fest, welcher Teil des Standardnamens eines Objekts angezeigt und/oder ausgesprochen wird 
• <set_group_override_name_flags> - legt fest, welcher Teil des Standardnamens für alle Objekte in einer Gruppe angezeigt und/oder ausgesprochen wird
Aktionen, die erweitert wurden, sind:

Code: Select all

• <reward_player> - <war>-node hinzugefügt, um den "Kriegspunktestand" des Spielers beeinflussen zu können, d.h. wie sehr er sich an den Kriegsanstrengungen beteiligt hat 
• <create_ship> -  "safety"-Attribut hinzugefügt, um festzulegen, ob ein Schiff bei seiner Erstellung zu einer sicheren Position verschoben werden soll oder nicht
• <find_object> - "silent"-Attribut hinzugefügt, um Fehler zu unterdrücken, wenn kein Objekt gefunden wird (gilt auch bei ähnlichen Aktionen) 
• <find_object> - "war"-Attribut hinzugefügt, um nur Kriegs-/Nichtkriegsobjekte finden zu können (gilt auch bei ähnlichen Aktionen) 
• <count_object> - "silent"-Attribut hinzugefügt, um Fehler zu unterdrücken, wenn kein Objekt gefunden wird (gilt auch bei ähnlichen Aktionen)  
• <count_object> - "war"-Attribut hinzugefügt, um nur Kriegs-/Nichtkriegsobjekte zählen zu können (gilt auch bei ähnlichen Aktionen)  
• <set_objective> - "active"-Attribut hinzugefügt, um das Ziel zum aktiven zu machen 
• <set_state> - Kann nun benutzt werden, um Börsenstationen freizuschalten / zu sperren 
• <warp_object> - "warp"-Attribut hinzugefügt, um herauszufinden, wann ein Warpeffekt gezeigt werden sollte
Neue Bedingungen sind:

Code: Select all

• <war_score_changed> - Das Ereignis wird erzeugt, wenn der Spieler eine Änderung im aktuellen "Kriegspunktestand" beeinflusst
Neue verfügbare Variablen sind:

Code: Select all

• {player.money.billions} - Milliarden Credits auf dem Hauptkonto des Spielers 
• {player.money.billions.formatted} - Milliarden Credits auf dem Hauptkonto des Spielers, formatiert mit Trennzeichen  
• {player.money.units} - Menge an Credits unter einer Milliarde auf dem Hauptkonto des Spielers 
• {player.money.units.formatted} - Menge an Credits unter einer Milliarde auf dem Hauptkonto des Spielers, formatiert mit Trennzeichen
• {player.money.large} - Gesamte Menge an Credits auf dem Hauptkonto des Spielers, formatiert ohne Trennzeichen 
• {player.money.large.formatted} - Gesamte Menge an Credits auf dem Hauptkonto des Spielers, formatiert mit Trennzeichen 
• {player.menu.speech} - ob Sprache zurzeit abgespielt wirdwhether speech is currently being played 
• {player.menu.speech.priority} - Priorität der zurzeit aktiven Sprache 
• {object.subtype@object} - interner Subtype-Code für ein Objekt 
• {object.warobjectid@object} - WarObject ID für ein Objekt 
• {object.locked@stockexchange} - für Börsenstationen, ob diese zurzeit gesperrt ist 
• {object.locked.north@hub} - für den HUB, ob das entsprechende Tor zurzeit gesperrt ist 
• {object.realigntime@hub} - früheste Zeit der nächsten Neuverbindung eines Tores 
• {lookup.type.subtype@typecode} - interner Subtype-Code für einen typecode 
• {lookup.subtype@subtype} - interner Subtype-Code für einen speziellen Subtype-Wert 
• {war.state@statename} - id für speziellen Kriegszustand ("war state") 
• {war.state.name@statename} - Name für speziellen Kriegszustand 
• {war.state.duration@statename} - Dauer für speziellen Kriegszustand  
• {war.currentstate} - aktueller Kriegszustand 
• {war.currentstate.starttime} - Zeit, zu der der aktuelle Kriegszustand gestartet hat 
• {war.currentstate.endtime} - Zeit, zu der der aktuelle Kriegszustand voraussichtlich endet 
• {war.currentstate.duration} - erwartete Gesamtdauer des aktuellen Kriegszustandes 
• {war.currentstate.observed} - ob der aktuelle Kriegszustand vom Spieler beobachtet wurde (direkt oder über die Karte) 
• {war.currentstate.progress} - prozentualer Fortschritt des aktuellen Kriegszustandes 
• {war.nextstate.name} - Name für nächsten erwarteten Kriegszustand 
• {war.nextstate.duration} - Gesamtdauer für nächsten erwarteten Kriegszustand
Eine weitere Änderung, die wir vorgenommen haben, ist das Mission Director Variablen nun auch in Feldern für Booleanwerte genutzt werden können. Beispiele, wie dies genutzt werden kann, finden sich in den verschiedenen Standard- und Plot-Missionen im Spiel.

Last edited by X2-Illuminatus on Thu, 1. Mar 12, 21:58, edited 2 times in total.

User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 24949
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus » Mon, 27. Feb 12, 18:19

Graphen

Diejenigen unter Euch, die eigene Graphen erstellen wollen, werden ein paar zusätzliche Informationen benötigen.

Warnung: Diese Beschreibung ist nichts für schwache Nerven!

Der Scriptbefehl, um einen Graphen zu erstellen, akzeptiert nur einen einzigen Parameter. Dieser ist ein Array, das alle Daten enthält, um den Graphen darzustellen. Das Format dieses Arrays ist, wie folgt:

Code: Select all

Graph = { Graph-Daten [,Beschriftungen [, x-Achse [, y-Achse [, Reihen-Beschriftungen [, Reihen-Farben ] ] ] ] ] } 

Graph-Daten = Reihen-Daten | { Reihen-Daten [,Reihen-Daten [,Reihen-Daten... ] ] } 
Beschriftungen = { [ Titel [, Beschriftung der x-Achse [,Beschriftung der y-Achse [, beschreibender Text ] ] ] ] } 
x-Achse, y-Achse = Beschriftung einzelner Elemente | Wertebereich der Achse 
Reihen-Beschriftungen { [Reihen-Beschriftung [,Reihen-Beschriftung [,Reihen-Beschriftung ... ] ] ] } 
Reihen-Farben { [Reihen-Farbe [,Reihen-Farbe [,Reihen-Farbe ... ] ] ] } 

Reihen-Daten = { x0, y0 , x1, y1 [, x2, y2 [, x3, y3 ... ] ]  } 
xN, yN = Zahl | Beschriftung eines Elements 

Beschriftungen einzelner Elemente = { [Beschriftung eines Elements [,Beschriftung eines Elements [,Beschriftung eines Elements ... ] ] ] } 
Wertebereich der Achse = { [ min [, max [, Schritt [, Faktor [, Teiler [, Format]]]] ] ] } 

Format = sprintf-Format | @strftime-Format 

Reihenfarbe = RGB-Farbe
x-Achsen-Beschriftung, y-Achsen-Beschriftung, beschreibender Text, Reihen-Beschriftung, Element-Beschriftung, sprintf-Format, strftime-Format = Text | "{pageid,textid}" | { pageid, textid } 
pageid, textid, min, max, Schritt, Faktor, Teiler = Zahl
Nachfolgend siehst Du Ein Beispielarray für einen Graphen, der ein senkrechtes Balkendiagramm erstellt:

Code: Select all

 { 
   // Daten des Graphen 
   { 
     // Daten für Reihe eins
     { "a", 3, "b", 2, "c", 8}, 
     // Daten für Reihe zwei 
     { "a", 7, "b", 3, "c", 5} 
   }, 
   // Beschriftungen
   { "Titel", "X-Achse", "Y-Achse", "Dies ist ein Beispielgraph" } 
   // X-Achse (benannte Elemente) 
   { "a", "b", "c" } 
   // Y-Achse (nummeriert mit festgelegtem Start/End-Wert aber automatischem Schritt) 
   { 0, 10 } 
   // Reihennamen 
   { "Reihe 1", "Reihe 2" } 
   // Reihenfarben (rot und gelb) 
   { 0xffd20101, 0xffd2d201 } 
  } 
Die Anzeige der Graphen ist so konzipiert, dass so viel wie möglich automatisch geschieht. Dementsprechend sind einige Einstellungen optional. Es gibt drei Arten von Graphen: Balken, Linien und Kurven; und eine Reihe an Unterarten. Der Graph wählt die Darstellungsart in Abhängigkeit der im Array bereitgestellten Daten automatisch.

Ein Balkendiagramm wird angezeigt, wenn ein (und wirklich nur ein) Datensatz der Achse eine Beschriftung (Text) anstatt Zahlenwerte enthält. Wenn der Datensatz der X-Achse eine Beschriftung enthält, dann wird ein senkrechter Balken angezeigt, bei der y-Achse ein waagerechter Balken. Bei kleinen Datensätzen werden die Balken für verschiedene Reihen nebeneinander dargestellt. Wird der Platz zwischen ihnen hingegen zu schmal, springt die Anzeige automatisch zu einer überlappenden Darstellung um. Wenn es ganz einfach zu viele Balken gibt, werden diese auch die nächste Spalte überlappen und die Darstellung wird durcheinandergeraten. Es gibt nichts, was Du dagegen tun kannst, außer die Menge der anzuzeigenden Daten reduzieren.

Ein Liniendiagramm wird angezeigt, wenn die Datensätze beider Achsen Zahlenwerte statt Text enthalten und die Werte auf der X-Achse der Hauptdaten des Diagramms in aufsteigender Reihenfolge sind, d.h. kein x-Wert einer Reihe kleiner ist als sein Vorgänger. Wenn am Ende des Graphen mehrere Punkte sehr nah beieinanderliegen, so werden die "x"-Markierungen für alle Punkte weglassen und es werden nur Linien gezogen.

Ein Punktdiagramm wird angezeigt, wenn die Datensätze beider Achsen Zahlenwerte statt Text enthalten, die Werte auf der X-Achse der Hauptdaten des Diagramms aber nicht in aufsteigender Reihenfolge sind. In diesem Fall werden alle Punkte genau an ihrer Position dargestellt, wodurch Punkte einer Reihe die Punkte einer anderen verdecken können. Ein Punktdiagramm wird auch angezeigt, wenn die Datensätze beider Achsen Beschriftungen (Text) enthalten. Da in diesem Fall die genaue Position der Punkte nicht mehr ganz so wichtig ist, sind die Positionen der Punkte innerhalb ihrer Zeilen und Spalten und zwischen den einzelnen Reihen leicht verschoben. Wenn es zu viele Reihen gibt, werden sie sich überlappen, wodurch sie wiederum schwieriger auseinanderzuhalten sind.

Für Achsen, die durch Beschriftungen einzelner Elemente definiert sind, muss sichergestellt werden, dass alle Elemente, die angezeigt werden sollen, auch gelistet sind. Punkte im Graphen, die zu keiner der Element-Beschriftungen passen, werden nicht angezeigt. Reihen und Spalten, die keine zugehörigen Punkte enthalten, bleiben leer.

Wenn keine Achsendatensätze oder der Wertebereich der Achsen nur teilweise bereitgestellt werden, wird die Anzeige der Graphen auf Basis der verfügbaren Daten versuchen, sinnvolle Werte für den Wertebereich sowie die Schrittweite zu finden. Wenn keine Achsendaten bereitgestellt werden und die Daten des Graphen für eine gegebene Achse nur Namen enthalten, werden die Namen genutzt, um ein Balkendiagramm zu erzeugen oder eine Kurve, wenn die Daten beider Achsen nur Namen enthalten. Sind in den Daten hingegen Zahlen enthalten, so wird die Anzeige versuchen, kleinste und größte Werte zu ermitteln, und zwischen diesen einen sinnvollen Maßstab für die Beschriftungen zu finden. Benannte Werte auf Achsen, die anderweitig Zahlen enthalten, werden zu seltsamen Ergebnissen führen!

Beachte, dass kleinste und größte Achsenwerte den kompletten verfügbaren Platz nutzen werden. Die Werte werden dementsprechend ganz am Rand der Achse bzw. des Graphen angezeigt. Balkendiagramme, deren Wert gleich dem kleinsten ist, werden nicht dargestellt. Dementsprechend sollte man immer mindestens einen Minimalwert angeben, der kleiner ist als die Werte der Datensätze. Wenn Du einen Minimalwert angibst, dann werden kleinere Werte weder in Balken- noch in Kurvendiagrammen angezeigt. Wenn Du einen maximalen Wert für eine Achse angibst, dann werden Punkte oberhalb dieses Maximums in Kurven- oder Liniendiagrammen nicht eingezeichnet. Balken in Balkendiagrammen werden hingegen mit einigen Strichen am Ende dargestellt, um zu verdeutlichen, dass sie den Maximalwert überschreiten. Linien werden in einem Liniendiagramm gezeichnet, sogar wenn sie sich damit außerhalb des Wertebereichs, entweder kleiner als das Minimum oder größer als das Maximum, befinden. Auf diese Weise können selbst Menütitel und –grenzen überschritten werden!

Für numerische Achsen können neben dem Minimum, Maximum und der Schrittweite auch ein Faktor und ein Teiler angegeben werden, um die Achsenbeschriftungen zu dimensionieren. Ein Beispiel: Auf der x-Achse werden Daten mit einer Genauigkeit von 1 Minute dargestellt, aber die Achsenbeschriftung stellt Stunden dar, indem ein Faktor von 1 und ein Teiler von 60 angegeben wird. Man kann zudem ein Zeichenkettenformat festlegen, das angibt, wie die Zahl angezeigt werden soll. Wie auch bei Beschriftungen kann das Zeichenkettenformat als Rohtext, als Texteintrag in der Form "{pageid, textid}" oder als Array, bestehend aus zwei ganzzahligen Werten für pageid und textid, bereitgestellt werden. Wenn nicht bereitgestellt, nutzt der Graph standardmäßig das Zeichenkettenformat sprintf "%d", um Zahlen zu formatieren. Es kann mit jedem anderen sprintf Zeichenkettenformat ersetzt werden. Wenn das Zeichenkettenformat mit einem "@"-Symbol beginnt, wird der Rest des Zeichenkettenformats als "strftime"-Zeichenkettenformat interpretiert. Dies erlaubt eine Vielzahl von Datumsformaten für die Anzeige der Achsenbeschriftungen. Folgt dem "@"-Symbol kein Zeichenkettenformat, so wird das spielinterne Standard Datumsformat der aktuellen Spielsprache genutzt.

Der Graph wird versuchen, seine Größe den Beschriftungen anzupassen. Bedenke, dass der verfügbare Platz begrenzt ist und Du dementsprechend das Nutzen von langen Beschriftungen vermeiden solltest. Beschriftungen der y-Achse, beider Hauptachsen sowie die einzelner Elemente haben eine gewisse Flexibilität, lassen den Graphen aber schmaler werden. Es gibt viel Platz für die die Beschriftung der Haupt-X-Achse, dafür sind die Beschriftungen einzelner Elemente dieser Achse besonders begrenzt. Um diesen Einfluss zu verringern, werden automatisch zwei Textzeilen verwendet. Des Weiteren wird zwischen ihnen hin und her gewechselt, wenn die Beschreibungen für den verfügbaren Platz zu breit sind. Reicht dies immer noch nicht aus, dann werden sich die Beschriftungen überlappen. Reihenbeschriftungen müssen in die eine Zeile des Informationsfeldes passen. Der beschreibende Text wird hingegen auf so viele Zeilen wie nötig aufgeteilt.

Beachte, dass zur Auswahl von Farben für Reihen ein neuer Scriptbefehl zur Verfügung steht, der Dir unter Angabe des roten, grünen und blauen Anteils den entsprechenden Farbcode ermittelt.

Wenn Du bis hierhin alles durchgelesen hast und immer noch bei Bewusstsein bist, dann herzlichen Glückwunsch und viel Glück beim Erstellen deiner eigenen Graphen!

Locked

Return to “X Trilogie Universum”