[SCR][TC+AP] Customlog - editierbares Spielerlogbuch (v1.0.1) [Update: 13.06.2014]

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

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

[SCR][TC+AP] Customlog - editierbares Spielerlogbuch (v1.0.1) [Update: 13.06.2014]

Post by X2-Illuminatus »

The English topic can be found here.

Customlog – editierbares Spielerlogbuch (v1.0.1)

Das Customlog – editierbares Spielerlogbuch fügt dem Spiel ein neues Spielerlogbuch hinzu, das es dem Spieler ermöglicht Nachrichten in verschiedene Kategorien zu schreiben, sie zu löschen und zu verwalten. Auch bietet es anderen Scriptern die Möglichkeit, Nachrichten von ihren Scripten in das Customlog zu schreiben.

Image

Index
Informationen für Spieler: Installation, Funktion, Kompatibilität
Download und Liste der Änderungen
Informationen für Scripter


Image

1. Die Installation

Lade das Script-Archiv herunter und entpacke es in dein Spielverzeichnis.

Für X3: Terran Conflict findet sich dieses standardmäßig unter
C:\Programme\Egosoft\X3 Terran Conflict oder
C:\Programme\Steam\steamapps\common\X3 Terran Conflict

Für X3: Albion Prelude findet sich dieses standardmäßig unter
C:\Programme\Steam\steamapps\common\X3 Terran Conflict\addon

Nach dem Entpacken sollten sich alle Dateien des Archivs – sie sind weiter unten aufgelistet – in ihren entsprechenden Ordnern im X3TC-Verzeichnis oder dessen "addon"-Ordner befinden.

Beachte: Nur zur Sicherheit solltest du vor der Installation des Scripts auch eine Sicherungskopie deiner Spielstände anlegen. Das Standardverzeichnis der Spielstände lautet
C:\Benutzer\[Beutzername]\Dokumente\Egosoft\X3TC\save für X3TC oder
C:\Benutzer\[Benutzername]\Dokumente\Egosoft\X3AP\save für X3AP.
(C: entspricht hier dem Buchstaben deines Betriebssystemlaufwerks.)


2. Die Funktion

Das Customlog kann über die Zusätzlichen Schiffskommandos über die Kommandokonsole deiner Schiffe geöffnet werden.

Customlog Hauptmenü

Das Hauptmenü zeigt alle verfügbaren Kategorien des Customlogs an sowie Optionen, um diese zu verwalten.

[ external image ]
(Zum Vergrößern bitte klicken.)
  1. Neue Nachricht hinzufügen
    Wählt man diese Option aus, so wird man gebeten eine Nachrichten in ein Textfeld einzugeben. Anschließend muss man aus den verfügbaren Kategorien eine Kategorie auswählen, zu der die Nachricht dann hinzugefügt wird. Ist keine Kategorie passend, drücke ‘Esc’ und du wirst nach dem Namen einer neuen Kategorie gefragt, die dann erstellt wird.
  2. Neue Kategorie hinzufügen
    Wählt man diese Option aus, so wird man nach dem Namen für eine neue Kategorie gefragt. Existiert eine Kategorie mit gleichem Namen bereits, so muss man die Erstellung der neuen Kategorie zusätzlich noch bestätigen. Eine neue Kategorie wird immer ans Ende der Liste aller Kategorien gesetzt.
  3. Position von Kategorie ändern
    Mit dieser Option lässt sich die Position einer Kategorie in der Liste aller Kategorien ändern.
    Wählt man diese Option wird man zuerst nach der zu verschiebenden Kategorie und an-schließend nach ihrer neuen Position gefragt.
  4. Kategorie löschen
    Wählt man diese Option, so muss man eine Kategorie aus der Liste der verfügbaren Kategorien auswählen, die dann gelöscht wird. Vor der Ausführung dieser Aktion, muss man eine zusätzliche Abfrage bestätigen. Bitte beachte, dass bei der Löschung einer Kategorie alle Nachrichten in ihr ebenfalls gelöscht werden.
  5. Optionen
    Hier können verschiedene Optionen eingestellt werden, die dann in allen Menüs Anwendung finden. Klicke einfache auf eine Option, um die verfügbaren Eingabewerte durchzuschalten oder das zugehörige Eingabefeld aufzurufen.

    [ external image ]
    (Zum Vergrößern bitte klicken.)

    (Bitte beachte: Die einzelnen Optionen werden in der Customlog_LiesMich.pdf Datei, die sich nach der Installation des Scripts im Documents-Ordner findet.)
  6. Schließen
    Dies schließt das Customlog. (Das Gleiche passiert, wenn man "Esc" drückt.)
Unter diesen Optionen werden die eigentlichen Kategorien deines Customlogs angezeigt. Standardmäßig ist dies nur die Alle-Kategorie. Weitere Kategorien können über die Neue Kategorie hinzufügen-Option hinzugefügt werden. Klickt man auf eine Kategorie wird das Kategoriemenü angezeigt.


Kategoriemenü

Das Kategoriemenü zeigt alle Nachrichten der gewählten Kategorie an sowie Funktionen, um diese zu verwalten.

[ external image ]
(Zum Vergrößern bitte klicken.)
  1. Neue Nachricht hinzufügen
    Wählt man diese Option aus, so wird man gebeten eine Nachrichten in ein Textfeld einzugeben. Diese Nachricht wird dann zur aktuellen Kategorie hinzugefügt.
  2. Kategorie wechseln
    Hiermit kann man einfach zu einer anderen Kategorie wechseln, ohne zum Hauptmenü zu-rückkehren zu müssen.
  3. Kategorie umbenennen
    Wählt man diese Option aus, so wird man nach einem neuen Namen für die aktuelle Kategorie gefragt. Existiert eine gleichnamige Kategorie, so muss man noch eine zusätzliche Abfrage bestätigen, ehe die Kategorie erstellt wird.
  4. Alle Nachrichten in Logdatei schreiben
    Dies schreibt alle Nachrichten der aktuellen Kategorie in die Logdatei, deren ID in den Optionen des Hauptmenüs angegeben ist. Bevor der Befehl ausgeführt wird, wird man gefragt, ob man die Nachrichten an die bereits existierende Datei anhängen möchte. Klickt man auf "Ja" und eine Logdatei mit der gewählten ID existiert bereits, so werden die Nachrichten zu den in der Datei vorhandenen hinzugefügt. Klickt man auf "Nein", so werden alle bestehenden Nachrichten in der Logdatei zunächste gelöscht, ehe die neuen Nachrichten hineingeschrieben werden. Ist noch keine Datei vorhanden, so wird sie in beiden Fällen erstellt. Außerdem wird man gefragt, ob man anschließend alle Kategorien aus der gewählten Kategorie löschen möchte.
  5. Die Logdatei wird unter folgendem Pfad gespeichert
    C:\Benutzer\[Benutzername]\Documente\Egosoft\X3TC oder
    C:\Benutzer\[Benutzername]\Dokumente\Egosoft\X3AP
    (C: entspricht hier dem Buchstaben deines Betriebssystemlaufwerks.)
  6. Alle Nachrichten aus dieser Kategorie löschen
    Dies löscht alle Nachrichten aus der aktuellen Kategorie. Die Ausführung dieses Befehls muss über eine zusätzliche Abfrage bestätigt werden.
  7. <Anzahl> neueste Nachrichten löschen
    Dies löscht die angezeigte Anzahl neuester Nachrichten (d.h. die, die zuletzt hinzugefügt wurden) aus der aktuellen Kategorie. Die Anzahl kann in den Optionen des Hauptmenüs geändert werden. Die Ausführung dieses Befehls muss über eine zusätzliche Abfrage bestätigt werden.
  8. <Anzahl> älteste Nachrichten löschen
    Dies löscht die angezeigte Anzahl ältester Nachrichten (d.h. die, die als erstes zur Kategorie hinzugefügt wurde) aus der aktuellen Kategorie. Die Anzahl kann in den Optionen des Hauptmenüs geändert werden. Die Ausführung dieses Befehls muss über eine zusätzliche Abfrage bestätigt werden.
  9. Zurück zum Hauptmenü
    Dies bringt dich zurück zum Hauptmenü. (Das Gleiche passiert, wenn man "Esc" drückt.)
Unter diesen Optionen werden die Nachrichten innerhalb dieser Kategorie beginnend mit der neuesten angezeigt. Dabei wird immer nur die Anzahl an Nachrichten angezeigt, die in den Optionen des Hauptmenüs eingestellt ist. Sind mehr Nachrichten in dieser Kategorie gespeichert, wird am Ende der Nachrichtenliste, eine "Weitere Nachrichten anzeigen"-Option angezeigt. Mit einem Klick auf diese werden weiter Nachrichten der Nachrichtenliste hinzugefügt.
In der Nachrichtenliste werden alle Nachrichten zusammen mit der Zeit, zu der sie ins Logbuch geschrieben wurden, angezeigt. Ist die Nachricht zu lang, um in einer Zeile angezeigt zu werden, wird nur der erste Teil der Nachricht dargestellt. Die komplette Nachricht kann im Nachrichtenmenü gelesen werden, welches man über einen Klick auf die Nachricht öffnet.


Nachrichtenmenü

Das Nachrichtenmenü zeigt die vollständige Nachricht an sowie Funktionen, um diese zu verwalten.

[ external image ]
(Zum Vergrößern bitte klicken.)
  1. Nachricht editieren
    Die öffnet das Nachrichten editieren-Menü.

    [ external image ]
    (Zum Vergrößern bitte klicken.)

    Zunächst wählt man die Zeile aus der Originalnachricht, die man editieren möchte. Anschlie-ßend kann man die geänderte Zeile eingeben. In der Zwischenzeit wird die Originalzeile als Untertitel angezeigt. Ist man mit seinen Änderungen zufrieden, wählt man die "Änderungen anwenden"-Optionen, um seine Änderungen zu speichern und zum Nachrichtenmenü zurückzukehren.

    Bitte beachte: Aufgrund der Größenbegrenzung von Custom-Menüs werden lange Nachrichten in mehrere Zeilen aufgeteilt. Solche Nachrichten können nicht als Ganzes, sondern immer nur zeilenweise editiert werden. Es gibt zudem keine Möglichkeit, Text bereits in einer Eingabezeile anzuzeigen, wodurch man – selbst bei kleinen Änderungen – die ganze Zeile noch einmal abtippen muss.
  2. Nachricht in andere Kategorie verschieben
    Hierüber kann man eine Nachricht in eine andere Kategorie verschieben. Hierzu wählt man die Zielkategorie aus, in die die Nachricht verschoben werden soll. Drückt man "Esc" oder ist die Nachricht bereits in der gewählten Kategorie enthalten, bleibt die Nachricht, wo sie ist.
  3. Nachricht in Logdatei schreiben
    Dies schreibt die Nachricht in die Logdatei, deren ID in den Optionen des Hauptmenüs angegeben ist. Vor Ausführung des Befehls wird man gefragt, ob die Nachricht an die existierende Datei angehängt werden soll. Klickt man auf "Ja" und eine Logdatei mit gleicher ID existiert bereits, so wird die Nachricht an den Inhalt dieser Datei angehängt. Drückt man auf "Nein" so wird der Inhalt der bestehenden Logdatei gelöscht und die Nachricht alleine hineingeschrieben. Ist noch keine Datei vorhanden, so wird sie in beiden Fällen erstellt. Die Logdatei wird unter folgendem Pfad gespeichert:
    C:\Benutzer\[Benutzername]\Dokumente\Egosoft\X3TC oder
    C:\Benutzer\[Benutzername]\Dokumente\Egosoft\X3AP
    (C: entspricht hier dem Buchstaben deines Betriebssystemlaufwerks.)
  4. Nachricht löschen
    Dies löscht die Nachricht. Die Ausführung dieses Befehls muss über eine zusätzliche Abfrage bestätigt werden.
  5. Zurück zum Kategoriemenü.
    Dies bringt dich zurück zum Kategoriemenü. (Das Gleiche passiert, wenn man "Esc" drückt.)
Unter diesen Optionen wird die vollständige Nachricht angezeigt. Die Zeit, zu der sie zum Customlog hinzugefügt wurde, befindet sich als Überschrift darüber.


Weitere Informationen

Einfärben von Texten
Beim Hinzufügen oder Editieren von Nachrichten können einzelne Wörter oder auch die gesamte Nachricht eingefärbt werden. Hierzu stehen verschiedene HTML oder BB-Code ähnliche Tags zur Verfügung. Die Farbtags bestehen jeweils aus einem öffnenden und schließenden Farbtag und einem Farbcode: <c=F></c>. Dabei werden die folgenden Farbcodes und Farben unterstützt:

[ external image ]
(Zum Vergrößern bitte klicken.)

Die Farbtags lassen sich auf verschiedene Arten anwenden:

1. Ein einzelnes Wort einfärben.
Das zu färbende Wort befindet sich zwischen dem öffnenden und schließenden Farbtag.

[ external image ]
(Zum Vergrößern bitte klicken.)

[ external image ]
(Zum Vergrößern bitte klicken.)

2. Mehrere Wörter oder eine ganze Zeile einfärben.
Alle Wörter zwischen dem öffnenden Farbtag und dem nächsten schließenden oder öffnenden Farbtag oder bis zum Nachrichten-/Zeilenende werden in der angegebenen Farbe eingefärbt.

[ external image ]
(Zum Vergrößern bitte klicken.)

[ external image ]
(Zum Vergrößern bitte klicken.)

[ external image ]
(Zum Vergrößern bitte klicken.)

[ external image ]
(Zum Vergrößern bitte klicken.)


3. (In)kompatibilitäten und Grenzen

Dieses Script ist mit allen X3: Terran Conflict Versionen größer gleich 2.5 und mit allen X3: Albion Prelude Versionen größer gleich 1.0 kompatibel. Es ist ebenso mit allen Scripts und Mods kompatibel, die nicht den gleichen Kommandoslot (COMMAND_TYPE_SHIP_26) und die gleiche Textdatei / Textseite (7330) nutzen.

Da das Customlog sogenannte Custom-Menüs nutzt, hat es einige Limitierungen – speziell im Hinblick auf die Textdarstellungen und -eingabe. Ich werde versuchen, die Funktionen wo möglich zu verbessern. Jedoch gibt es diverse Dinge, wie die Eingabe von Text, die einfach durch die Script-Engine begrenzt sind und nicht weiter verbessert werden können. Davon abgesehen habe ich versucht, die Anzahl an Menüs – und damit auch die Anzahl der Klicke, um eine bestimmte Funktion zu erreichen – möglichst gering zu halten, und trotzdem mehr Funktionen als das normale Logbuch einzubauen.

Was das Script nicht tun wird, ist alle Nachrichten, die ins normale Logbuch geschrieben werden, ins Customlog umzuleiten. Nur Nachrichten von Scripten, die das Customlog unterstützen und natürlich alle Nachrichten, die man selbst hinzufügt, werden ins Customlog geschrieben.

Ich weiß, dass es einen (treiberbezogenen) Bug mit AMD-Grafikkarten gibt, der die Navigation (das Scrollen) in Menüs extrem verlangsamt. Da ich keine aktuelle AMD-Grafikkarte habe, kann ich nicht testen, inwiefern dieser Bug auch in diesem Script auftritt. Sollte der Bug auftreten, empfehle ich, die Anzahl an angezeigten Nachrichten zu reduzieren. (Siehe hierzu die Optionen des Customlog Hauptmenüs.)


4. Bekannte Bugs
  • - Zurzeit keine (v1.0)
5. Noch-zu-erledigen-Liste
  • - Funktion zum Verschieben alle Nachrichten von einer in eine ander Kategorie hinzufügen
    - Funktion zum Sortieren von Nachrichten hinzufügen
    - Anzeige von Nachrichten verbessern
    - Nachrichteneditierfunktion verbessern
    - Aufräumarbeiten
6. Die Deinstallation

Öffne die Sprachdatei des Customlog für die Sprache, in der du spielst, mit einem beliebigen Text- oder XML-Editor: 7330-L0xx.xml (xx steht für den Sprachcode, 49 = Deutsch, 44 = Englisch). Die Datei findet sich im t-Ordner deines Spielverzeichnisses.

Für X3: Terran Conflict findet sich dieser standardmäßig unter
C:\Programme\Egosoft\X3 Terran Conflict\t oder
C:\Programme\Steam\steamapps\common\X3 Terran Conflict\t

Für X3: Albion Prelude findet sich dieser standardmäßig unter
C:\Programme\Steam\steamapps\common\X3 Terran Conflict\addon\t

Ändere die "Deinstallationsvariable" von 0 zu 1 und speichere die Datei. Anschließend starte/lade dein Spiel.

Das Script fragt dich nun, ob du das Customlog wirklich deinstallieren möchtest. Du wirst ebenfalls gefragt, ob du die Nachrichten des Customlogs in der angegebenen Logdatei sichern möchtest. Anschließend wird das Customlog deinstalliert und du erhälst eine Nachricht darüber.

Gehe nun zu deinem scripts.uninstall-Ordner in deinem X3TC-Spielverzeichnis oder dessen addon-Ordner (für X3AP) und doppelklicke auf die Datei "uninstall.X2I.customlog.bat". Dies wird alle Customlog-Dateien aus den Ordnern Documents, scripts und t entfernen. Lösche nun die uninstall.X2I.Customlog.bat und, vorausgesetzt es sind keine weiteren Dateien darin vorhanden, auch den scripts.uninstall-Order.


7. Danksagungen
  • EGOSOFT für die X-Reihe und den Script Editor
    SS_T für einen zuverlässigen Downloadort auf xdownloads

Last edited by X2-Illuminatus on Sat, 14. Jun 14, 11:46, edited 10 times in total.
User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 25128
Joined: Sun, 2. Apr 06, 16:38
x4

Download und Liste der Änderungen

Post by X2-Illuminatus »


8. Download

Das Customlog-Scriptpaket kann von verschiedenen Orten heruntergeladen werden. Funktioniert einer der Downloadlinks nicht, so wähle bitte einen anderen. Funktioniert keiner, poste bitte hier im Customlog Script-Thema oder schreibe mir eine Private Nachricht (PN).

XDownloads
[ external image ]

Mediafire.com
[ external image ]


mydrive.ch
(Kein Direktlink verfügbar)
  • 1. http://www.mydrive.ch im eigenen Browser aufrufen
    2. Sich mit dem Benutzernamen Gast@Illuminatus und dem Passwort Gast01 einloggen.
    3. Im Ordner "Customlog" die Datei "Customlog_v1.0.1.zip" anklicken.
Bitte beachte: Dem Downloadpaket liegt eine ausführliche Liesmich-Datei (im Ordner Documents) bei, die Erklärungen für alle Funktionen des Customlogs enthält.


9. Liste der Änderungen
  • 2. Juni 2014 – Erstveröffentlichung (v1.0)

    13. Juni 2014 – Update (v1.0.1)
    • - Unnötiger "write to player logbook"-Befehl aus .delamount-Script entfernt
      - Falsche Text ID für Zeilenumbruch in .formatmessage-Script korrigiert
      - Page ID wird in formatmessage-Script nun aus globaler Variable eingelesen
      - Das Kategorie-Menü wartet nun bis eine Nachricht zum aktuellen category.arr hinzugefügt wurde, bevor es erneut geöffnet wird
      - Fehler in englischer Textdatei behoben
      - Funktion zum Einfärben eigener Texte hinzugefügt

Last edited by X2-Illuminatus on Sun, 29. Nov 15, 18:34, edited 6 times in total.
User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 25128
Joined: Sun, 2. Apr 06, 16:38
x4

Informationen für Scripter

Post by X2-Illuminatus »


10. Informationen für Scripter

Nachrichten ins Customlog schreiben

Um herauszufinden, ob das Customlog in einem Spiel installiert ist, kann man prüfen, ob die globale Variable mit dem Namen 'globvar.X2I.Customlog.main' existiert. Ist dies der Fall, ist das Script installiert.

Eigene Scripte können Nachrichten ins Customlog schreiben, indem sie das Script plugin.X2I.write.to.Customlog aufrufen, welches 4 Argumente erwartet:
  • • 1: message , Var/String , 'text'
    • 2: identifier , Var/String , 'category identifier'
    • 3: category.name , Var/String , 'category name'
    • 4: notification , Var/Boolean , 'audio notification'
1. Eine Variable, die die eigentliche Nachricht als Zeichenkette enthält.

2. Eine Variable, die einen einzigartigen Identifikationswert als Zeichenkette enthält.
  • - Alle Nachrichten, die ins Customlog geschrieben werden, werden in einer bestimmten Kategorie gespeichert.
    - Dieser Identifikationswert wird dazu genutzt, die eigene Kategorie zu identifizieren. Wenn jemand eine Nachricht in diese Kategorie schreiben möchte, dann muss derjenige auch den entsprechenden Identifikationswert angeben. (Dies gilt nicht, wenn der Spieler diese Kategorie als seine Standardkategorie gewählt hat. In diesem Fall werden auch alle Nachrichten ohne Angabe eines Identifikationswertes in diese Kategorie geschrieben.)
    - Der Identifikationswert muss eine einzigartige Zeichenkette sein. Um zu überprüfen, welche Kategorien bereits existieren, kann man das Script lib.X2I.Customlog.getcategories aufrufen. Es gibt ein Array zurück, das zwei weitere Arrays enthält. Das Erste enthält die Kategorie-namen, das zweite die zugehörigen Identifikationswerte. (Das erste Element beider Arrays bezieht sich immer auf die Standardkategorie.)
    - Gibt man einen bestimmten Identifikationswert zum ersten Mal an, wird eine neue Kategorie erstellt und ans Ende des all.categories.arr gehängt. In diesem Fall ist es wichtig auch einen Kategorienamen mit anzugeben!
    - Wird kein Identifikationswert angegeben ( $identifier = null ), wird die Nachricht in die Stan-dardkategorie des Customlogs geschrieben.
    - Wird kein Identifikationswert angegeben, kann man auch auf die Angabe eines Kategorien-amens verzichten.
3. Eine Variable, die einen Namen für die Kategorie als Zeichenkette enthält.
  • - Dieser Name wird eigentlich nur benötigt, wenn ein Identifikationswert zum allerersten Mal verwendet wird, d.h. wenn die Kategorie erstellt wird.
    - Der Kategoriename wird im Customlog Hauptmenü zusammen mit den anderen verfügbaren Kategorien angezeigt.
    - Der Kategoriename muss nicht einzigartig sein, sollte aber das zugehörige Script repräsentieren, sodass der Spieler weiß, wozu diese Kategorie gehört.
    - Der Name einer bestehenden Kategorie kann mit diesem Script nicht geändert werden. Nur der Spieler kann dies tun!

4. Eine Variable, die einen boolschen Wahr- oder Falsch-Wert enhält.
  • - Dies bestimmt, ob eine Audiobenachrichtigung gespielt wird, wenn die Nachricht ins Customlog geschrieben wird. [TRUE] (wahr) aktiviert sie, [FALSE] (falsch) deaktiviert sie.
    - Der Spieler kann Audiobenachrichtigungen komplett abschalten. In diesem Fall, wird keine Audiobenachrichtigung gespielt.
    - Diese Nachricht sollte nur für wichtige Optionen genutzt werden oder wenn es sonst keinen offensichtlichen Hinweis gibt, das eine Nachricht gerade ins Customlog geschrieben wurde.
Beispiel:

Als erstes möchtest du den Spieler sicherlich darüber informieren, dass dein Script nun das Customlog unterstützt. Dafür könntest du die folgenden Zeilen zu deinem setup-script hinzufügen:

Code: Select all

025   
026   * Ist das Customlog installiert?
027   ifget global variable: name='globvar.X2I.customlog.main'
028   * Ist meine Kategorie bereits erstellt?
029   |if notget global variable: name='meine.globale.variable.um.zu.prüfen.ob.meine.Kategorie.bereits.existiert'
030   * Wenn nicht, schreibe den Text ins Customlog und gib Name und Identifikationswert
031   * für meine Kategorie mit an
032   ||send incoming message 'Mein.Script unterstützt jetzt das Customlog!' to player: display it=[TRUE]
033 @ ||START[THIS] -> call script 'plugin.X2I.write.to.customlog' :  text='Mein.Script unterstützt jetzt das Customlog!'  category identifier='mein.kategorie.identifikator'  category name='Meine Kategorie'  audio notification=[FALSE]
034   ||set global variable: name='meine.globale.variable.um.zu.prüfen.ob.meine.Kategorie.bereits.existiert' value='mein.kategorie.identifikator'
035   |end
036   end
037 
Der obige Code überprüft, ob das Customlog bereits installiert ist und die eigene Kategorie bereits angelegt wurde. Ist Letzteres nicht der Fall, wird dein Text zum Customlog hinzugefügt. Da du hier zum ersten Mal auch einen Identifikationswert und einen Namen für deine Kategorie mit angibst, wird die Kategorie erstellt und dein Text direkt zu ihr hinzugefügt.

Bitte beachte: Im obigen Beispiel wird angenommen, dass der Identifikationswert für deine Kategorie einzigartig ist und zuvor noch nicht zum Customlog hinzugefügt wurde.

Nun da deine Kategorie angelegt wurde, kannst du wie folgt Texte ins Customlog schreiben:

Code: Select all

025   
026   ifget global variable: name='globvar.X2I.customlog.main'
027 @ |START[THIS] -> call script 'plugin.X2I.write.to.customlog' :  text=$text  category identifier='mein.kategorie.identifikator'  category name=null  audio notification=[FALSE]
028   else
029   |write to player logbook $text
030   end
031  
Ist das Customlog installiert, wird der Text in deine Kategorie geschrieben. Ist das Customlog nicht installiert, wird der Text ins normale Logbuch geschrieben.


Aufbau der Customlog-Arrays

Die Nachrichten im Customlog sind in einer Reihe von Arrays gespeichert, die im folgenden Bild dargestellt sind.

[ external image ]
(Zum Vergrößern bitte klicken.)

Das main.arr ist in der globalen Variable globvar.X2I.Customlog.main gespeichert und enthält nur das all.categories.arr.

Das all.categories.arr enthält die verschiedenen Kategorien-Arrays (category.arr). Jede Kategorie hat ihr eigenes category.arr. Die Standardkategorie befindet sich dabei immer an erster Stelle im all.categories.arr. Alle anderen Arrays folgen dahinter. Die Anzahl der Kategorien ist auf 2 Milliarden beschränkt.

Die ersten drei Einträge jedes category.arr sind der Name der Kategorie, der Identifikationswert der Kategorie sowie die Position des letzten (aktuellen) Nachrichten-Arrays (message.arr). Anschließend folgen die Nachrichten-Arrays, wobei das letzte immer die neuesten Nachrichten enthält. Die Anzahl an Nachrichten-Arrays ist auf 2 Milliarden beschränkt.

Jedes message.arr kann wiederum bis zu 2 Milliarden Einzelne-Nachrichten-Arrays (single.message.arr) enthalten, in denen die eigentliche Nachricht gespeichert wird. Ist ein message.arr voll, so wird ein neues erstellt und an das category.arr angehängt. Die Position des aktuellen message.arr im category.arr wird ebenfalls angepasst.

Jedes single.message.arr enthält drei Werte: erstens das time.arr, in dem Spieldauer in Sekunden und die Spielzeit als Zeichenkette, zu der die Nachricht ins Customlog geschrieben wurde, gespeichert werden, zweitens die eigentliche Nachricht als Zeichenkette und drittens die Nachricht aufgeteilt in einzelne Zeilen, die in die Menüs passen. Für jede neue Nachricht wird dabei auch ein neues single.message.arr erstellt und an das aktuelle message.arr angehängt.

Auf diese Weise ist es möglich bis zu 8 Quadrilliarden oder 8.000.000.000.000.000.000.000.000.000 oder 8 ∙ 10^27 Nachrichten zu speichern.


Weitere script-bezogene Informationen

Dateiliste

Documents
  • Customlog_LiesMich.pdf
    Customlog_ReadMe.pdf
scripts
  • !init.X2I.Customlog.modified.pck
    lib.X2I.Customlog.formatcolor
    lib.X2I.Customlog.formatmessage
    lib.X2I.Customlog.gametime
    lib.X2I.Customlog.getcategories
    lib.X2I.Customlog.getmessagenum
    lib.X2I.Customlog.reformatlines
    plugin.X2I.Customlog.addcategory
    plugin.X2I.Customlog.addmessage
    plugin.X2I.Customlog.category
    plugin.X2I.Customlog.delamount
    plugin.X2I.Customlog.delcategory
    plugin.X2I.Customlog.delmessage
    plugin.X2I.Customlog.dismessage
    plugin.X2I.Customlog.displaysub
    plugin.X2I.Customlog.editmessage
    plugin.X2I.Customlog.main
    plugin.X2I.Customlog.movemessage
    plugin.X2I.Customlog.options
    plugin.X2I.Customlog.startlog
    plugin.X2I.Customlog.uninstall
    plugin.X2I.Customlog.writetologf
    plugin.X2I.write.to.Customlog
    setup.X2I.Customlog
scripts.uninstall
  • uninstall.X2I.Customlog.bat
t
  • 7330-L044.xml (Englisch)
    7330-L049.xml (Deutsch)
Verwendete Ressourcen
Kommandoslot: Command_Type_Ship_26
Logfile id / Textdatei / Page id: 7330

Globale und lokale Variablen
Globale Variablen beginnen mit der Zeichenkette globvar.X2I.Customlog.
Lokale Variablen werden nicht genutzt.
Last edited by X2-Illuminatus on Fri, 13. Jun 14, 22:47, edited 2 times in total.
User avatar
ubuntufreakdragon
Posts: 5217
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon »

Interessant, dann könnte man ja mal seine Textnachrichten wieder finden, sollte ich mal iwas zum protokolieren haben, kommen die in dein customlog.
PS: Hab dich/dein Script gleich mal im Topic der Scriptkollektion von Lucike erwähnt, grade diese Scripte könnten sowas noch brauchen.
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist
User avatar
JSDD
Posts: 1379
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD »

... was hältst du von einer evtl. option "textfarbe" ??
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


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

Post by X2-Illuminatus »

... was hältst du von einer evtl. option "textfarbe" ??
Zum Anzeigen von Text im Customlog? Oder wenn man selbst eine Nachricht zum Customlog hinzufügt?

Ersteres könnte problematisch werden, wenn der hinzugefügte Text bereits farbig ist. Der Script Editor macht es leider nicht so ganz einfach, diverse Tags aus Textdateien zu lesen. Muss ich mir aber nochmal anschauen, wie das bei Farbtags ganz genau funktioniert. Letzteres sollte prinzipiell möglich sein, und ich werde an der Texteingabe sicherlich auch noch etwas ändern.
Nun verfügbar! X3: Farnham's Legacy - Ein neues Kapitel für einen alten Favoriten

Die komplette X-Roman-Reihe jetzt als Kindle E-Books! (Farnhams Legende, Nopileos, X3: Yoshiko, X3: Hüter der Tore, X3: Wächter der Erde)

Neuauflage der fünf X-Romane als Taschenbuch

The official X-novels Farnham's Legend, Nopileos, X3: Yoshiko as Kindle e-books!
User avatar
JSDD
Posts: 1379
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD »

... ich dachte spontan an so ´ne option zur farbigen darstellung eigener texte in gewählter farbe, z.B. alle "wichtigen" dinge in rot, alle "halbwegs" wichtigen in gelb o.ä. ... (z.B. werden bei missionen dinge wie verdientes geld gelb dargestellt)

Code: Select all

$Text.Gefaerbt = sprintf pageid=xxx textid=yyy, $Text, null, null, null, null

<page id="xxx">
 <t id="yyy">\033B%s\033X</t> <!--blau-->
</page>
... also anstelle von $Text einfach $Text.Gefaerbt im array speichern
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele
User avatar
Smile3363
Posts: 55
Joined: Sat, 7. Apr 07, 12:19
x4

Post by Smile3363 »

Super Arbeit!

Vielen Vielen Dank dafür. Da ich immer meine eigenen Geschichten machte, habe ich nun auch ein Tool um dies besser zu gestalten! ^^ *freu*

Dangääää!
----> "Das Leben ist ein beschissenes Computerspiel, aber die Grafik ist einfach Saugeil!" <----
User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 25128
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus »

Smile3363 wrote:Super Arbeit!
Danke. :)

@JSDD
Ja, das sollte gehen.
Nun verfügbar! X3: Farnham's Legacy - Ein neues Kapitel für einen alten Favoriten

Die komplette X-Roman-Reihe jetzt als Kindle E-Books! (Farnhams Legende, Nopileos, X3: Yoshiko, X3: Hüter der Tore, X3: Wächter der Erde)

Neuauflage der fünf X-Romane als Taschenbuch

The official X-novels Farnham's Legend, Nopileos, X3: Yoshiko as Kindle e-books!
User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 25128
Joined: Sun, 2. Apr 06, 16:38
x4

Update 1.0.1

Post by X2-Illuminatus »

Und da ist auch schon das erste kleine Update, das ein paar Fehler korrigiert und eine Funktion zum Einfärben eigener Texte mitbringt. :)

Update - Version 1.0.1
  • - Unnötiger "write to player logbook"-Befehl aus .delamount-Script entfernt
    - Falsche Text ID für Zeilenumbruch in .formatmessage-Script korrigiert
    - Page ID wird in formatmessage-Script nun aus globaler Variable eingelesen
    - Das Kategorie-Menü wartet nun bis eine Nachricht zum aktuellen category.arr hinzugefügt wurde, bevor es erneut geöffnet wird
    - Fehler in englischer Textdatei behoben
    - Funktion zum Einfärben eigener Texte hinzugefügt
Image


Einfärben von Texten
Beim Hinzufügen oder Editieren von Nachrichten können einzelne Wörter oder auch die gesamte Nachricht eingefärbt werden. Hierzu stehen verschiedene HTML oder BB-Code ähnliche Tags zur Verfügung. Die Farbtags bestehen jeweils aus einem öffnenden und schließenden Farbtag und einem Farbcode: <c=F></c>. Dabei werden die folgenden Farbcodes und Farben unterstützt:

[ external image ]
(Zum Vergrößern bitte klicken.)

Die Farbtags lassen sich auf verschiedene Arten anwenden:

1. Ein einzelnes Wort einfärben.
Das zu färbende Wort befindet sich zwischen dem öffnenden und schließenden Farbtag.

[ external image ]
(Zum Vergrößern bitte klicken.)

[ external image ]
(Zum Vergrößern bitte klicken.)

2. Mehrere Wörter oder eine ganze Zeile einfärben.
Alle Wörter zwischen dem öffnenden Farbtag und dem nächsten schließenden oder öffnenden Farbtag oder bis zum Nachrichten-/Zeilenende werden in der angegebenen Farbe eingefärbt.

[ external image ]
(Zum Vergrößern bitte klicken.)

[ external image ]
(Zum Vergrößern bitte klicken.)

[ external image ]
(Zum Vergrößern bitte klicken.)

[ external image ]
(Zum Vergrößern bitte klicken.)

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”