Probleme mit Script für DFI

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!
  • Hallo,

    ich habe schon einige Zeit an dem Script für eine DFI gearbeitet.


    Leider funktioniert es weiterhin nicht so, wie ich es gerne möchte.


    Entweder zeigt es nichts an:


    … oder nur die letzten drei Abfahrtszeiten:


    Es liegt wirklich nur am Script. Die Textfelder sind alle richtig eingetragen und funktionieren alle. Ich nutze nicht einfach nur 1 (S.L.Refresh_Strings), da dies nie die Strings aktualisiert hat. Das Script ist irgendwie immer davor abgebrochen ...


    Vielen Dank im Voraus für die Hilfe.

  • Also Grundsätzlich finde ich die Art des Scriptens suboptimal (Textfelder einfach mehrfach überschreiben, wenn ein vorheriges Ergebnis nicht (mehr) valide ist) aber grundsätzlich kann ich da jetzt rein vom syntax nichts kritisches erkennen. Was sagt das Logfile? Hast du wirklich alle Textfelder mal geprüft, ob sie sich per Script beschreiben lassen? Ist der Font in Ordnung?

  • Ja, die Font funktioniert. Ich habe ebenfalls eine beschreibbare Variante erstellt und dort kann man alle Textfelder fehlerfrei nutzen. Wie schon erwähnt, ich habe schon einiges mit dem Script probiert und das Objekt ist nicht dran Schuld.


    Und jetzt zum ersten Teil. Ich habe jetzt schon viele Variablen und wenn die Zwischenergebnisse auch nochmal ihre Variablen erhalten, dann vergrößert sich natürlich auch die Gesamtanzahl der Steingvariablen. Und Textfelder überschreibe ich ja nicht. Das würde passieren, wenn ich jedes Mal die Strings aktualisieren würde.


    Die Logfile sagt nichts. Von der Syntax her ist, wie du gesagt hast, alles richtig.


    Ich könnte mal eine Variante erstellen, die keine Systemmacros nutzt, sondern Variablen, um die DFI im Editor zu testen. Ich habe einfach das Gefühl, dass OMSI es nicht schafft, das Script in einem Frame auzuführen und bricht dann ab. Als ich nämlich die RefreshStrings-Variable damals ganz unten gesetzt hatte, ist nichts passiert. Habe ich sie einige Zeilen nach oben gesetzt, haben sich einige Textfelder verändert. Was ich auch bemerkt habe ist, dass OMSI Scripts gar nicht genau einmal per Frame ausführt...

  • erstell doch mal nen testscript mit
    "String123" (S.$.Dest1)

    "String123" (S.$.Dest2)

    "String123" (S.$.Dest3) etc.


    und PRÜFE, ob das funktioniert.
    Wenn man etwas debuggen will und hilfe im Forum suchst, solltest du das auch schrittweise sinnvoll durchführen, und nicht davon ausgehen dass es funktioniert, nur weil eine beschreibbare variante funktioniert.

  • Ich hätte es vielleicht etwas anders formulieren sollen. Ich habe die DFI-Anzeige auch mit anderen Scripts getestet. Die Textfelder funktionieren auf jeden Fall. Hier ein Beispiel:

    Und das ist das Ergebnis:

  • Problem endlich gefunden! Beim Abgleich, ob überhaupt ein Ziel vorhanden ist, habe ich = genutzt. Strings vergleicht man aber mit $=.

    Code
    '    …
    '     Informationen nur anzeigen, wenn  Bus auch kommt
        0 (M.V.GetArrBusTerminus) "" =
    
    '    …