Fehlermeldungen (EM4)

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Dienste bereitzustellen und die Zugriffe auf unsere Website zu analysieren. Außerdem werden durch unsere Partner Informationen zu Ihrer Nutzung für soziale Medien, Werbung und Analysen erfasst. Weitere Informationen

  • Informationen zu Scripting-Fehlermeldungen in EMERGENCY 4.

    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:
    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.

    96 mal gelesen