Stringvariable wird vom Script nicht gesetzt

Willkommen in der OMSI-WebDisk!
Als Gast kannst du nur Inhalte in deiner ausgewählten Sprache sehen. Registrierte Nutzer können die Sichtbarkeit anderer Sprachen in ihrem Kontrollzentrum aktivieren, weitere Infos hier.
Alle Themen sind in den Foren mit einer Sprachflagge gekennzeichnet: = Englisch [EN], = Deutsch [DE], = Französisch [FR]. Wenn du die angegebene Sprache nicht beherrschst, schreibe auf Englisch!

Leitstellenfahrt Livestream - Ahlheim V4 - ab 19:00 Uhr auf unserem Discord-Server.

Wer zuschauen möchte, kann hier dem Stream beitreten.

  • Moin zusammen,

    ich bin gerade dabei, eine einfache Innenanzeige zu bauen und wollte diese nun skripten. Nachdem ich festgestellt habe, dass keine Daten auf den Textfeldern angezeigt wurden, habe ich angefangen, das Script zu debuggen und dabei festgestellt: Die Werte werden im Script trotz Speicherbefehl nicht gesetzt.


    Hier ist mein einfaches Script, es soll wirklich nichts weiter machen, als in alle Variablen dort den String "Test" zu schreiben.

    Doch genau das passiert nicht, die Variablen bleiben leer, wie man in der Situationsdatei sehen kann:


    Das Script an sich ist in der *.bus-Datei eingebunden und wird an sich auch ausgeführt. Ich hatte vorher absichtlich einen "Fehler" eingebaut, den mir das Logfile auch ensprechend angezeigt hat, daher weiß ich, dass OMSI die Scriptdatei im Prinzip findet und ausführt, aber das speichern der Variablen macht er halt - warum auch immer - nicht. Im Log finde ich bezüglich dessen auch keine Fehler.

    Einmal editiert, zuletzt von ma7t3 ()

  • Anzeige
  • Da ich nicht weiß, was du bereits alles probiert hast, versuche / kontrolliere mal die nachfolgenden Punkte. Es sind manchmal die dämlichsten Fehler die einem unterlaufen.


    • Hast du vor dem Aufrufen der laststn.osn in OMSI auch Strg+S gedrückt?
    • Probiere die Werte und Variablen hintereinander zu schreiben... also: "TEST" (S.$.bla1) S.$.bla2) (S.$.bla3)...
    • Wandle den frame-Abschnitt in ein Macro um, und führe dieses per frame-Abschnitt aus.
  • Hast du vor dem Aufrufen der laststn.osn in OMSI auch Strg+S gedrückt?

    Ja, habe ich gemacht :)



    Probiere die Werte und Variablen hintereinander zu schreiben... also: "TEST" (S.$.bla1) S.$.bla2) (S.$.bla3)...
    Wandle den frame-Abschnitt in ein Macro um, und führe dieses per frame-Abschnitt aus.

    Ich habe den Code jetzt wiefolgt umgebaut, leider hat sich nichts getan.

    Auch die Kodierung von osc- und varlist-Dateien habe ich von UTF-8 auf ANSI geändert, allerdings hat das auch nichts geändert... :(


    PS: Die Zeile 0 (S.L.MoinMoin) dient nur zu debug-Zwecken, dass der Code ausgeführt wird (wird er, ich erhalte eine Fehlermeldung, dass "MoinMoin" nicht existiert).

  • PS: Die Zeile 0 (S.L.MoinMoin) dient nur zu debug-Zwecken, dass der Code ausgeführt wird (wird er, ich erhalte eine Fehlermeldung, dass "MoinMoin" nicht existiert).

    Hmm... jetzt würde mich aber tatsächlich mal interessieren - wenn du die Variable in eine Varlist packst - ob diese denn den korrekten Wert (im besten Fall etwas anderes als Null) zugewiesen bekommt. :/

    • Hilfreichster Beitrag

    Ich habe den Code jetzt wiefolgt umgebaut, leider hat sich nichts getan.


    Der Fehler ist eigentlich ziemlich offensichtlich, du darfst außer in der Main.osc nicht mit {frame} arbeiten. D.h. du musst ein {macro:xxx} anlegen und dies über die Main.osc laden.

    Rest in Peace Haha-Reaktion - Von uns Gegangen am 03.10.2023 .(

  • Hmm... jetzt würde mich aber tatsächlich mal interessieren - wenn du die Variable in eine Varlist packst - ob diese denn den korrekten Wert (im besten Fall etwas anderes als Null) zugewiesen bekommt. :/

    Schon probiert, der Fehler ist dann weg - logischerweise. Sie bleibt aber - wie die anderen - halt leer, egal, was ich im Script veranstalte.

    Selbst, wenn ich in der Situationsdatei manuell Werte eintrage und die Situation dann neu lade, werden sie nicht angenommen, sondern verschwinden wieder.



    [...]

    Der Fehler ist eigentlich ziemlich offensichtlich, du darfst außer in der Main.osc nicht mit {frame} arbeiten. D.h. du musst ein {macro:xxx} anlegen und dies über die Main.osc laden.

    Darf ich nicht?

    Das würde dann natürlich alles erklären.

    Ich dachte, ich kann beliebig viele frame-Blöcke haben.

    Gilt das grundsätzlich, also, dass ich pro "Scope" (also Bus/Objekt, usw.) nur jeweils ein {frame} (und vermutlich auch nur einen {init})-Block im gesamten Scriptsystem haben darf?


    Funktioniert jedenfalls jetzt! :heart:

    Großen Dank an euch IREgio612 und DerErzbusfahrer.

    Damit bin ich um eine vermutlich wichtige Scriptgrundlage schlauer :"D