Unterthemen:
- Aktivierung eines Scripts ohne Aktivierung des Scripteditors
- Externe Kommandoslotänderung bei Scriptkollisionen
- ReadText-Einträge einem Script zuordnen
- Wo bekomme ich den Script Installer her?
- STL EasyCommandChange
Zunächst einmal gilt bei den meisten Scripts: Keine Angst! Das "schlimmste", was bei der Nutzung eines Scripts passieren kann ist, dass die entsprechenden Saves beschädigt werden oder das Spiel neu installiert werden muss. Weil aber die meisten Scripts hier schon vor dem Release gründlich getestet werden und jeder, der ein Problem hat, sofort laut "hier" schreit, ist es spätestens nach ein paar Wochen quasi ausgeschlossen, dass derlei Fehler noch bestehen.
Der Scripteditor besitzt nur eine begrenzte Sammlung von Befehlen, und man muss sich schon anstrengen, damit Mist zu bauen
Das zweite, was noch möglich ist, sind interne Bugs in einem Script. Diese sind normalerweise auch harmlos, behindern vielleicht die Ausführung dieses spezifischen Scripts. Bekannte Bugs hier ist etwa das sog. "qwertzuiop"-SKW der Handelssoftware-MK3-Optimierung oder die in demselben Script auftuchenden Scharen von Handelsschiffen, die lange Zeit für Verwirrung sorgten, bevor das Problem behoben wurde.
Kleine Bugs
Folgendes sind die häufigeren, kleineren Fehler, die auftreten können:
- Fehler in der Variablenverwaltung: Wenn irgendwo eine Variable falsch gelesen oder interpretiert wurde, vielleicht weil sie von vornherein falsch initialisiert wurde (Laut Scripteditor ist null+5 gleich 'null5', aber nicht 5) oder durch Mehrfachverwendung zwischendurch gelöscht wurde, kommt häufig irgendetwas mit 'null' heraus. Sollte etwas mit 'null' im Nachrichtenlog oder als Schiffs-/Pilotenname auftauchen, ist das meist der Fall. Das ist für den Spielfluss meist kein gravierender Fehler, kann aber problematisch werden, etwa wenn in der Variablen eigentlich z.B. ein Geldbetrag stehen sollte, der dem Spieler zusteht und nun nicht gezahlt werden kann. Da sollte man Bescheid sagen.
- Fehler in der Textdatei: Bei jedem Laden eines Spielstandes werden Textdateien geladen, die dann in den Scripts ausgelesen und etwas für Nachrichtenausgaben benutzt werden. Ist eine Textdatei korrupt, kann das zu unsinnigen ==readtext ????-???==-Ausgaben führen, sogar zu einem Spielabsturz beim Laden. Letzteres passiert praktisch nicht, weil das dann in jedem Fall schon bei mir aufgetreten und behoben worden wäre. Wichtig: Um den readtext einem Script zuordnen zu können, sollte man die Nummernfolge (hier ????-???) notieren! Die IDs aller größeren Scripts sind hier gelistet, die Einträge entsprechen jeweils der Folge ????, die ??? sind nur Untereinträge.
- Unendliche Loops: Da es im Editor keine "for-Schleife" gibt, muss eine solche Schleife mit "while" umgangen werden. Dabei vergisst man gelegentlich, die Zählvariable zu erhöhen, oder schreibt den dazu nötigen Befehl in die falsche Schleife. Entsprechend zählt das Script nicht mehr mit, wie oft es eine Aktion ausführen soll, und hört daher nicht auf. Das führt zu irreparablen Hängern oder zum Absturz. Zum Glück passiert das in 99% schon beim Scripter – in schweren Fällen hilft da nur noch der Stecker. Diese Fehler sind in veröffentlichten Scripts extrem selten, meist hat der Scripter selbst seinen PC schon als "Minenräumfahrzeug" eingesetzt und alle dieser Probleme entfernt.
- Kompatibilität: Da EGOSOFT nur eine begrenzte Anzahl von Kommadoslots bereitsgestellt hat, reichen diese nach einiger Zeit nicht mehr für die große Anzahl an Scripts aus. In dieser Kompatibilitätsliste sind alle angemeldeten Scripts aufgeführt, Kollisionen sind in Orange gekennzeichnet. Aber auch nicht gelistete Scripts könnten die Wurzel einer solchen Kollision sein, oder eine Überschneidung in Variablen, Veränderungen der Original-Egosoft-Scripts und Änderungen der gleichen Dateien in Mods/"False Patches". Meist kann das Problem in wenigen handgriffen entfernt werden. (Wozu ich auch noch ein Tutorial schreiben werde)
Es gibt verschiedenste Dateitypen, die ein Script haben kann. In manchen Fällen sind die Erweiterungen komprimiert, etwa als .rar oder .zip. Diese Ordner müssen natürlich erst einmal dekomprimiert werden. Weiterhin folgen die Dateinamen auch noch gewissen Schlüsseln:
- {Name}.spk - Diese Datei ist eine Installationsdatei für Cycrows X-Plugin-Manager. Dieses Programm kann selbstständig die Dateien an die richtigen Stellen verschieben und benötigt keiner weiteren Erklärung. Zur Nutzung muss man das Programm herunterladen, installieren und dann mit ihm den .spk-file öffnen.
- {Name}.exe - Scripts in Form von .exe's sind sehr selten und kommen praktisch nur von offiziellen Quellen. .exe's aus fragwürdigen sollte man besser nicht öffnen (oder zumindest durch einen Virenscanner schicken). .exe-Scripts sind zumeist selbstinstallierende Großpakete wie das Community-Scriptpaket x3plus oder das offizielle X3-Bonuspack.
- 49{Zahl}.xml - Diese Datei ist eine deutsche Textdatei. Sie muss in den "t"-Ordner des X3-Verzeichnisses geschoben werden.
- 44{Zahl}.xml, 7{Zahl}.xml etc. - Diese Dateien sind anderssprachige Textdateien für das Script. Liegt nur diese Datei bei und keine deutsche Textdatei, ist das Script meist nicht übersetzt. Hier kann man z.B. selbst Hand anlegen, indem man der Datei vor der vierstelligen ID am Ende statt der 44, 7 etc. eine 49 verpasst. Selbiges muss auch in der Datei geschehen, die man am besten mit dem "Windows Notepad" oder einem enderen .xml-fähigen Editor öffnet und die "language id" auf "49" umschreibt. So ist der Text zwar weiterhin auf Ausländisch, aber immerhin ist er da.
- {BuchstabenName}.xml - Diese Dateien sind die eigentlichen Scriptdateien. Sie gehören in den "scripts"-Ordner im X3-Verzeichnis. Diese können noch einmal unterteilt werden:
al.plugin.{name}.xml - Setup für ein AL-Plugin.
init.{name}.xml - Objekt-Initialisierungsscript
setup.plugin.{name}.xml - Setup für ein normales Script.
Die Setups sind im Normalfall dafür zuständig, etwa die Kommandobezeichnungen aus den Textfiles zu laden, den Schiffen die Kommandonamen zu geben und die anderen Scripts mit dem X3-User-Interface zu verbinden. Entfernt oder ersetzt man diese wichtigen Schnittstellen, wird von dem Script im Spiel nicht mehr viel übrig sein.
lib.??.{name}.xml - Script-Library: Scriptdateien dieser Art werden von verschiedenen Scripts benutzt. So kann es z.B. sein, dass das Script bereits existiert, wenn man es einzufügen versucht. In dem Fall sollte man die (vom Änderungsdatum) neuere Version im Ordner belassen und die ältere Version löschen.
al.{name}.xml - AL-Plugin
plugin.{name}.xml - Scriptdatei
Es sollten immer alle Dateien eines Scripts installiert werden. Selbst, wenn ein Script schon dem Namen nach Nachteile zu bringen scheint (etwa "lib.st.getmoneyfromplayer"), kann sein Fehlen mit noch größeren Problemen verbunden sein. - {Name}.cat und {Name}.dat - Diese Dateien sind entweder "False Patch" oder Mod-Dateien.
Sogenannte "False Patches" müssen in den Hauptordner von X3 abgelegt werden. Dort bestehen schon einige .cat's und .dat's, meist 01.cat-09.cat und 01.dat-09.dat. Ist die letzte .cat und die letzte .dat etwa 09, so müssen diese neuen .cat's und .dat's in 10(.cat bzw. .dat) umbenannt werden, immer so, dass ihr Name stets eine Nummer höher ist als der Name der höchsten bestehenden Datei. Damit wird die Reihenfolge beim Laden der Dateien festgelegt.
Mods: Diese Mods müssen in den "Mods"-Ordner im X3-Verzeichnis kopiert werden. Beim Starten des Spiels kann man dann die Option Mod-Paket wählen wählen.
Achtung: Es kann immer nur EIN Mod gleichzeitig gespielt werden! Savegames sind zwischen Mods NICHT kompatibel. Zudem können manche Mods NUR mit bestimmten Versionen von X3 gespielt werden. Ein leiser Ansatz im Bestreben, Savegames von einem Mod zum anderen zu bewegen, ist der X3-X3-Converter. Selbst dieser kann aber nur begrenzt Daten übernehmen!
Jede Nutzung eines unsignierten Scripts erzeugt ein sogenanntes ***modified*** im Spielprofil. Dieses ***modified*** zeigt an, dass das Spiel auf die ein oder andere Weise verändert wurde, modifiziert. Das Modified gilt immer für das aktuelle Save und kann nicht (nie) rückgängig gemacht werden. Viele Spieler haben Angst, mit dem Modified die "jungfräuliche Unschuld" ihres Spielstandes zu verlieren, gar vor anderen als "Cheater" dazustehen, da man schließlich mit dem Scripteditor nicht nur Ausgeglichenheit und Spaß, sondern auch einseitige Bevorteilung herstellen kann. Doch dieses "Opfer" muss man zu geben bereit sein, denn wer verantwortungsvoll mit sich und dem Editor umgeht, wird wohl kaum in die Versuchung kommen, zu cheaten. Der Spielspaß, den man mit der Nutzung unsignierter Scripts gewinnen kann, ist durch keinen jungfräulichen Spielstand aufzuwiegen.
Ein Großteil der Scripts benötigt einen aktivierten Scripteditor. Man aktiviert den Scripteditor, indem man den Eigenen Spielernamen in Thereshallbewings ändert. Ist die Änderung erfolgreich (und ohne Tippfehler) verlaufen, wird der Spielername wieder auf den normalen Namen zurückgesetzt. Nun sind z.B. in bestimmten Schiffsmenüs Links zum Scripteditor eingebracht, an anderen Stellen hat man Einblick in verschiedene "Notoriety and Relation Infos" etc. - das sollte nicht stören, kann in bestimmten Fällen aber vermieden werden...