Fehlermeldungen (EM4)

Transcription

Fehlermeldungen (EM4)
Fehlermeldungen (EM4)
Fehler & Problemlösungen
Der Scriptinterpreter von EMERGENCY 4 ist leider mit vielen Fehlern
behaftet, die sich nicht mehr beheben lassen. Auf dieser Seite werden
typische Fehlermeldungen gesammelt und mögliche Workarounds
erklärt.
Unkown Command
Dieses Problem nimmt eine große Rolle im EMERGENCY-Scripting
ein. Es ist sowohl in EMERGENCY 3, als auch in EMERGENCY 4
vorhanden und eine Lösung ist nicht in Sicht, da hierzu der gesamte
Scriptinterpreter geupdated werden müsste.
Problembeschreibung
Das Problem kann auf zwei verschiedene Weisen ausgelöst werden:
Inhaltsverzeichnis
1 Fehler & Problemlösungen
1.1 Unkown Command
1.1.1
Problembeschreibung
1.1.2 Ursachen des
Problems
1.1.3 LogfileAuswertung
1.2 Symboldefinitionsfehler
1.2.1
Problembeschreibung
1.2.2 Problemlösung
1. Zum einen, wenn ein Missionsscript und ein Commandscript
gleiche Strings verwenden. So kann es unter Umständen dazu
kommen, wenn der Spieler die Mission frühzeitig beendet, dass einige dieser Strings gelöscht werden.
2. Dieser Fehler kann auch auftreten, wenn in einem Missionsscript mehrere Male der gleiche String verwendet wird,
also zum Beispiel der Name eines scriptrelevanten Objekts.
Lösung für Möglichkeit 1
Eine Variante der Lösung wäre, dass man von den relevanten Scripten zwei Versionen hat. Eine Version für die Nutzung
aus dem Missionsscript heraus und eine für Nutzung in Commandscripts.
Für ein Sondersignalscript, welches vom Missionsscript aus gesteuert wird, gibt es also zwei Commandscripts. Eines
welches der Spieler über die Druckknöpfe steuern kann und eines welches der Spieler nicht sieht, das aber ausschließlich
für die Verwendung in Missionsscripts gedacht ist.
Lösung für Möglichkeit 2
Um in einem Missionsscript die Mehrfachverwendung von einem String zu vermeiden gibt es die Möglichkeit, im globalen
Raum sogenannte „const char * Befehle“ zu setzen. Dabei wird ein String in eine globale (bezogen auf das Missionsscript
global) Zuordnung geschrieben, die dann für das gesamte Missionsscript gilt.
Ein Beispiel dafür ist ein „“const char NAME_OF_PEOPLE[] = „Demonstranten“;„ bei einer Demo-Mission.
„Demonstranten“ ist der Name der Personen auf der Map.
„NAME_OF_PEOPLE“ ist der const char* der im Missionsscript verwendet wird.
Anstatt eines “if (obj?HasName(„Demonstranten“))„ wird jetzt “if (obj?HasName(NAME_OF_PEOPLE))„ geschrieben und
schon erkennt der Scriptinterpreter den String nur noch einmal - nämlich im globalen Raum.
Ursachen des Problems
Der Scriptinterpreter ist für die Erstellung und Terminierung der Scripts verantwortlich. Wenn man eine Modifikation lädt,
dann werden die Commandscripts nie terminiert, es sei denn man lädt eine neue Modifikation oder verlässt das Spiel.
Sollte es also beim Beenden des Spiels, oder beim Wechseln der Modifikation zu Fehlern kommen, dann liegt es an den
Commandscripts.
Da - im Gegensatz zu den Commandscripts - ein Missionsscript nach jeder Mission terminiert wird, tritt der Fehler hier
besonders schnell auf. Folgen können hier entweder Systemabstürze oder Funktionsstörungen sein!
Logfile-Auswertung
?Tried to assign unknown command ' T1?(D??' to object U
… oder ähnliche Formen!
Die Ausgabe in der Logfile unterscheidet sich immer zwischen „command“ und „to“, da hier dann das fehlende
Commando versucht wurde zu „reanimieren“.
Symboldefinitionsfehler
Dieses Problem tritt als Fehlermeldung beim Laden einer Modifikation auf, wenn man mit dem Modding-Studio arbeitet.
Problembeschreibung
Das Problem tritt auf, wenn man in Modding-Studio (Script-Editor für EMERGENCY 4 Scripts), ein Script schreibt und
speichert.
Die Fehlermeldung hat folgendes Format:
Error: Symbol XYZ is not defined in current scope.
Dabei ist "XYZ" das Erste, was im Script steht, also oft eine Variable oder eine Klasse.
Problemlösung
Das Problem kann auf zwei Arten gelöst werden:
Man benutzt die Vorlage-Funktion von Modding-Studio, um ein Script zu erstellen.
Man kopiert das Script in den Windows-Editor und speichert es mit der Codierung ANSI ab.
http://www.emergency-forum.de/lexicon/index.php?entry/266-fehlermeldungen-em4/&s=2769bd71aa9fac21a4d2ca2b3c1beda4dd849b03
2

Similar documents