stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 325

Tag 325 von 365 · Experte · Monat 11: Optimierung und Fehlersuche

Scripts teilen

Scripts teilen: die Bibliothek im Spiel und auf der Webseite, der Aufbau der instruction.xml, Versionen kennzeichnen und ein Selbsttest für fremde Basen.

Lektion 18 Min. Woche 47

Das lernst du heute

  • Bibliothek und Workshop
  • Instruction.xml
  • Versionen kennzeichnen

Dein Kühlhaus-Script läuft seit Wochen fehlerfrei. Ein Freund will es auch. Ab jetzt läuft es in einer Basis, die du nie gesehen hast, mit Geräten, die anders heißen, auf einer Spielversion, die vielleicht neuer ist. Teilen heißt: Das Script muss ohne dich zurechtkommen.

Wo Scripts liegen

Im Spiel speichert der IC-Editor jedes Script in der Bibliothek. Auf der Festplatte ist das ein Ordner je Script:

Dokumente\My Games\Stationeers\scripts\<Titel>\instruction.xml

Der IC10-Coder auf dieser Seite kann diese Datei exportieren und auch wieder einlesen. Und in der IC10-Bibliothek der Webseite veröffentlichst du ein Script so, dass andere es ansehen, im Simulator testen und übernehmen können.

Die instruction.xml

<InstructionData>
  <DateTime>638652480000000000</DateTime>
  <GameVersion>0.2.6428.27798</GameVersion>
  <Title>Kuehlhaus v3</Title>
  <Description>3 Sensoren, Notbetrieb. Neu: Sollwert pruefen</Description>
  <Author>Dominik1199</Author>
  <WorkshopFileHandle>0</WorkshopFileHandle>
  <Instructions>...der Code, XML-escaped...</Instructions>
</InstructionData>
FeldInhalt
DateTimeZeitpunkt in .NET-Ticks (100-ns-Schritte seit dem Jahr 1)
GameVersionSpielversion, mit der du gespeichert hast
Title, Description, Authorwas andere in der Bibliothek sehen
WorkshopFileHandleVerknüpfung mit dem Steam Workshop, 0 = nicht verknüpft
Instructionsder Code; <, > und & stehen dort als &lt;, &gt;, &amp;

Versionen kennzeichnen

Drei Stellen, eine Nummer: define VERSION 3 im Code, „v3“ im Titel, und in der Beschreibung, was neu ist. Die GameVersion sagt dazu, mit welcher Spielversion du getestet hast.

Ein Selbsttest für fremde Basen

Was bei dir funktioniert, scheitert beim anderen meist an einem Gerät, das fehlt oder anders heißt. Lass den Chip das selbst melden. Jedes benötigte Gerät bekommt ein Bit in einem Code, und eine Anzeige zeigt ihn:

snan code temp                      # Bit 0: Sensor fehlt
snan tmp heiz
ins code tmp 1 1                    # Bit 1: Heizung fehlt
sbn ANZ HASH("Info") Setting code   # 0 = alles da

Zeigt die Anzeige 2, fehlt die Heizung „Raum“ – das findet jeder ohne Rückfrage.

Tipp

Beim Selbsttest hilft Average: Fehlt ein Gerät, wird jeder Wert NaN, auch ein On. Bei Sum käme dagegen still eine 0 heraus.

Übung

Aufgabe

Mach die Raumheizung teilbar: Beim Start steht VERSION am Gehäuse. Jeden Durchlauf zeigt die Anzeige „Info“ einen Selbsttest-Code: Bit 0 = Sensor „Raum“ fehlt, Bit 1 = Heizung „Raum“ fehlt, 0 = alles da. Ohne Sensor bleibt die Heizung aus. Die Regelung (19/21 °C) bleibt, wie sie ist.

Hinweise

Hinweis 1

s db Setting VERSION vor das Label der Schleife.

Hinweis 2

snan für den Sensor ergibt Bit 0, snan für die Heizung mit ins code tmp 1 1 Bit 1.

Hinweis 3

Fehlt die Heizung, ist ihr On NaN: select heiz tmp 0 heiz macht daraus 0, bevor and und or rechnen. Fehlt der Sensor, schaltet die Hysterese mit NaN von selbst aus.

Quiz

4 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Übung im Simulator bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall