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
| Was | Folge im Chip |
|---|---|
| neue LogicTypes | nichts – alte Scripts laufen weiter, neue können mehr |
| LogicType als veraltet markiert | wird weiter gelesen, liefert an neueren Geräten aber nichts |
| Gerät kennt einen LogicType nicht mehr | Fehler IncorrectLogicType oder still 0, je nach Lage |
| Prefab-Name anders oder falsch geschrieben | HASH("…") 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:
- Im IC10-Coder öffnen. Der Prüfer markiert veraltete LogicTypes und Befehle gelb, unbekannte rot.
- Im Simulator den strengen Modus einschalten. Er lässt nur LogicTypes zu, die das Gerät wirklich kennt.
- Im Spiel die Testfälle des Scripts wiederholen: Normalfall, Grenzfall, Ausfall.
- In der instruction.xml die neue
GameVersioneintragen, wenn alles passt.
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