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

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

Spielupdates überstehen

Spielupdates überstehen: neue und veraltete LogicTypes, Prefab-Namen gegen die aktuelle Liste prüfen und alte Scripts systematisch durchtesten.

Lektion 18 Min. Woche 47

Das lernst du heute

  • Neue und veraltete LogicTypes
  • Prefab-Namen prüfen
  • Alte Scripts testen

Nach einem Spielupdate zählt der Fertigungszähler nicht mehr. Kein Fehler am Gehäuse, die Drehbank läuft einfach durch. Was sich geändert hat, steht nirgends im Chip. Updates sind eine besondere Sorte stiller Fehler: Der Code ist derselbe, die Welt darum herum nicht.

Was sich bei Updates ändern kann

WasFolge im Chip
neue LogicTypesnichts – alte Scripts laufen weiter, neue können mehr
LogicType als veraltet markiertwird weiter gelesen, liefert an neueren Geräten aber nichts
Gerät kennt einen LogicType nicht mehrFehler IncorrectLogicType oder still 0, je nach Lage
Prefab-Name anders oder falsch geschriebenHASH("…") findet kein Gerät, Average liefert still NaN
veraltete Befehle (ld, sd, getd, putd, label)laufen weiter, l und s können dasselbe

Ein Beispiel für einen Namen, den es nie gab: RatioVolatiles. Volatiles heißt im Chip RatioMethane, ein Script mit dem falschen Namen lädt gar nicht erst. Und manche Prefab-Namen enthalten Schreibfehler des Spiels selbst, etwa StructurePipeAnalysizer. Wer sie „korrigiert“, findet das Gerät nicht mehr.

Prefab-Namen prüfen

Jeder Name in HASH("Structure…") muss exakt so heißen wie in der aktuellen Liste – Groß- und Kleinschreibung eingeschlossen. StructureAutoLathe und StructureAutolathe sind zwei verschiedene Hashes. Der Prüfer im IC10-Coder kennt die Liste und markiert unbekannte Prefabs.

Damit ein falscher Name nicht still bleibt, prüft das Script, ob sein Gerät überhaupt antwortet:

lbn da DREHBANK HASH("Drehbank") On Average      # NaN, wenn der Name nicht passt
snanz da da
lbn stueck DREHBANK HASH("Drehbank") ExportCount Sum

Alte Scripts testen

Nach einem Update gehst du jedes wichtige Script so durch:

  1. Im IC10-Coder öffnen. Der Prüfer markiert veraltete LogicTypes und Befehle gelb, unbekannte rot.
  2. Im Simulator den strengen Modus einschalten. Er lässt nur LogicTypes zu, die das Gerät wirklich kennt.
  3. Im Spiel die Testfälle des Scripts wiederholen: Normalfall, Grenzfall, Ausfall.
  4. In der instruction.xml die neue GameVersion eintragen, wenn alles passt.
Achtung

Sum ist bei Stückzahlen richtig, verrät aber kein fehlendes Gerät: Ohne Treffer liefert Sum eine 0, keine NaN. Die Anwesenheit prüfst du deshalb über einen zweiten Wert mit Average.

Übung

Aufgabe

Das Script aus dem Forum ist für eine ältere Spielversion geschrieben. Bring es auf den Stand: richtiger Prefab-Name der Automatendrehbank, ExportCount statt des veralteten ExportQuantity, kein veralteter Befehl. Die Drehbank „Drehbank“ läuft, bis 20 Stück gefertigt sind, die Anzeige „Stueckzahl“ zeigt den Zählerstand – und -1, wenn die Drehbank nicht gefunden wird.

Hinweise

Hinweis 1

Der Prefab heißt StructureAutolathe – mit kleinem l.

Hinweis 2

label d0 … ist veraltet und hier unnötig: Die Drehbank heißt im Spiel schon „Drehbank“.

Hinweis 3

Anwesenheit über lbn … On Average und snanz prüfen, dann mit select den Fehlwert zeigen.

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