Beiträge von Neoplan VEST

++ Update: 02.04.2026, 16:05 Uhr: Analysen und Erläuterungen. Siehe Artikel ++
++ Update: 31.03.2026, 21:35 Uhr: siehe Artikel ++
Achtung: Sicherheitswarnung für ein Programm aus unserer Filebase
Wir haben bei dem Programm "No More Sleep!" aus unserer Filebase Sicherheitsbedenken feststellen müssen. Für Nutzer, die die neuste Version des Programms von letzter Woche nutzen, haben wir hier weitere Informationen zusammengestellt: **Klick**
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!

    Na klar geht das.

    Man muss lediglich 2 neue TerminusL Einträge erstellen und definieren und dementsprechend auch anpassen.

    Ich erkläre es mal anhand an den originale Krüger Matrix.


    Bei dem Punkt

    'Zweiter Schritt: Ziel erstellen:

    Muss 2 weiteren Terminusstring eintragen mit 2 neuen Stringname.

    Etwa so:

    Code
        (L.L.IBIS_TerminusIndex) s0 (L.L.Matrix_TerminusIndex_Last) s1 = !
        (L.L.elec_busbar_main) &&
        {if}
            l0 1 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL1)
            l0 2 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL2)
            l0 3 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL3)
            l0 4 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL4)

    Der 3. String im Hof-Datei kennt man unter anderen durch die SD Matrix an der Seite der nur Einzeilig schildert ;)

    Der 4. String wird für den Rollbandtextur benutzt. Bei einer Matrix können wir den aber benutzen :)

    Danach müssen wir bei den Abschnitt 'Wenn nur die untere Zeile beschrieben ist, dann diese nach oben und untere leeren: ein weiterer Eintrag hinzufügen, damit auch an der Seite bei Einzeilige Ziele angezeigt werden kann in "Großshrift".

    Nämlich so:

    Unter den endif muss noch ein weiteren Teil angehängt werden, falls ein .tga vorhanden bzw. nicht ausgefüllt ist, dass der Inhalt von der Front genommen wird.

    Code
            (L.$.Matrix_TerminusL3) 4 $SetLengthR ".tga" $= s2 0
            (L.$.Matrix_TerminusL4) 4 $SetLengthR ".tga" $= s3 0
            
            l2 l3 ||
            (L.$.Matrix_TerminusL3) "" $= ||
            {if}
                (L.$.Matrix_TerminusL1) (S.$.Matrix_TerminusL3)
                (L.$.Matrix_TerminusL2) (S.$.Matrix_TerminusL4)
            {endif}

    Der Komplette Abschnitt sieht dann so aus:

    Nun müssen wir einen neuen Matrix_WriteTerminus erstellen.

    Es genügt, wenn man den aktuellen kopiert und unbenannt. In etwa Matrix_WriteTerminus_Rechts


    Die ganzen String im neuen Macro Matrix_WriteTerminus_Rechts müssen mit die neuen Strings ersetzt werden.

    Aus Matrix_TerminusL1 wird Matrix_TerminusL3 & Matrix_TerminusL2 wird Matrix_TerminusL4


    Tipp: Wenn man etwas geübt ist im Notepad++, kann man mittels Strg+H quasi übersetzen lassen.

    Wichtig dabei ist, dass nach der Macro keine weitere Strings auftauchen dürfen und am wichtigsten ist, dass der Haken bei "Am Ende von vorne beginnen" raus ist!

    Dann kann man problemlos auf den "Alle ersetzen" klicken ;)

    Alternativ kann man auch über den Button "Ersetzen" drücken.

    Erspart immerhin das auswählen und einfügen.

    Und am besten den Cursor "|" unterhalb des Macro ansetzen, weil ab da nach Unten übersetzt wird.


    Das sieht am Ende so aus:


    2 Dinge müssen wir noch anpassen:

    1. müssen wir jetzt den Script sagen, dass für die Rechte Anzeige eine eigene Script hat indem man nach diesen Abschnitt sucht

    und bei den letzten Matrix_WriteTerminus gegen unseren neuen String Matrix_WriteTerminus_Rechts austauschen.


    2. Müssen noch die beiden neue Strings im VMatrix_Stringvarlist.txt eingetragen werden.

    Code
    ...
    Matrix_TerminusL3
    Matrix_TerminusL4
    ...

    Dann braucht man lediglich noch Abspeichern und ausprobieren.

    Wenn alles richtig gemacht wurde sieht es so aus:


    Aber bedenke, dass es zur Unterschiede im Script kommen kann und vielleicht daher mehr angepasst werden muss.

    Alternativ wie schon gesagt wurde wäre die Lawo von Cooper gut gewesen. Aber leider nicht mehr erhältlich

    Alternativ würde ich es so versuchen den Frame und INIT einen Macro-Name zu geben und dann mittels xxx_Main.osc einzutragen.


    Code
    {macro:Leuchtdioden_init}
    ...
    {end}
    
    {macro:Leuchtdioden_frame} 
    ....
    {end}

    Und diesen Macro Namen würden dann in der xxx_main.osc eingetragen unter

    Das wäre meine Idee

    Ich meine, dass ich damals für Umlaute UTF-8 genommen habe, was auch funktionierte. Teste das Mal. :)


    Sagt die Logfile irgendwas?

    Alternativ ginge auch ANSI.

    In diesem Format sind auch original Dateien vorhanden.


    Würde ich bei mir jetzt mit UTF-8 Umlaute darstellen wollen, würde es nicht darstellen außer ein "Leerzeichen" Lücke.

    Genauso wie das "ß"

    Da wird dir sehr wahrscheinlich der Liniennummern-Teil noch immer irgendwie in die Variable Matrix_Xpos reinpfuschen, anders kann ich mir das so nicht erklären.

    Super 👍

    Vielen Dank für den Anregung.


    Tatsächlich lag es an den Matrix_Xpos Variable.

    Habe jetzt Speziell eine weitere Matrix_Xpos Variable erstellt und nun tut was es soll 😊


    Vorher


    Nachher

    Das Zieltext zentriert nun einwandfrei über die komplette Zielanzeige.


    Das ganze sieht jetzt im Script so aus:

    Man erkennt, dass der Variable Matrix_Xpos2 nun für die Breite genutzt wird ohne Linieneinbindung

    Hi,

    Ich stehe vor einem Rätsel.


    Ich habe für den privaten Zweck den O530 aufgewertet.

    Mein Problem ist, dass man in der CTI die Matrix Variante wechseln kann für die Rechte Seite.

    Klappt auch wunderbar. Bis auf die Animation.


    Wenn Linie+Ziel getrennt sein soll, soll die LNR nicht mit ins Ziel übernommen werden.

    Dies könnte man wie bei dem MAN NL/NG über den 28 (L.L.Matrix_Xpos) machen.

    Ein Haken hat es, da ich nämlich das "#" Befehl eingebaut habe, damit nur das Zeichen auf die hintere/linke Matrix angezeigt wird.

    Wird jetzt Matrix_Xpos Variable genutzt, so funktioniert das "#" Funktion nicht mehr. Dies ist auch bei den originalen Script auch der Fall.


    Das mit den Matrix_Xpos hatte auch funktioniert. Für die Seitenanzeige eine neue Matrix_WriteTerminus angelegt und dementsprechend als X Wert den 140 (L.L.Matrix_Xpos) - s3 (28+112) angeben.

    Bei der Macro Angaben wurde auch angepasst.


    Quasi so soll es aussehen:


    Da es aber halt zu den Problem kommt, war meine Gedanken, dass die rechte Seite 2 Separaten Textfelder bekommen.

    Im Umkehrschluss habe ich in einem Bitmap die Frontanzeige, Seitenanzeige komplett, LNR, LNR rechts (geteilte Matrix) & Ziel Rechts (geteilte Matrix).

    Das ganze Funktioniert auch, gar keine Frage, aber für die Seitenanzeige wird trotzdem ein leeres Feld quasi "Platzhalter" geschaffen. so dass der Ziel nicht komplett zentriert ist.

    Mir kam dann die Gedanke, das es eigentlich auch der Platz von die LNR mit einberechnet werden muss wegen der Zentrierung und der Fontzuordnung.

    Also die erste Gedanke darauf, den Stack "-" "s3" zu entfernen, da es u.a. für die Breite der LNR-Matrix genommen wird. Ohne Erfolg. Das GEgenteil war, dass es die gleiche Font Proportionen wie die Frontanzeige hatte. Nur halt ohne Linie.


    So sieht es jetzt derzeit aus. Man erkennt gut, dass vor dem Betriebsfahrt eine Große Lücke, als würde er das Logo links daneben darstellen zu wollen. Dies soll aber nicht sein.


    Gibt es da irgendeine Möglichkeit, diesen Platzhalter aus den Macro zu entfernen?

    So sieht mein Macro Abschnitt übrigens aus:

    Wie man sieht, sieht es eigentlich normal aus.

    Bei den 3 l1 - l6 / trunc 4 min s7 habe ich bewusst eine 4 gemacht, damit es nicht über die komplette Länge zentriert wird. Wie beim Originalen auch ;)


    Ich hoffe, man findet eine Lösung.

    Über Repaint zu Steuern ist theoretisch möglich.


    Man müsste lediglich eine Variable haben, mit dem man über den Repaint steuern kann.

    Ich habe mir mal an den MAN Stadtbusfamilie angeschaut, weil man mit denen auch über den Monitor steuern kann. -Sprich: Steuern über Variable.


    Relativ als erstes kommt dieser Abschnitt vor:

    Code
            (L.L.vis_Fonttype)
            {if}
                (L.$.Matrix_TerminusL1) (M.L.Matrix_Convertfont) (S.$.Matrix_TerminusL1)
                (L.$.Matrix_TerminusL2) (M.L.Matrix_Convertfont) (S.$.Matrix_TerminusL2)
            {endif}

    Die Variable vis_Fonttype gibt also den Kommando an. Ist quasi unsere Variable, mit dem wir den Option aufrufen können.

    Gefolgt kommt dann (L.$.Matrix_TerminusL1) (M.L.Matrix_Convertfont) (S.$.Matrix_TerminusL1)

    Auf TerminusL1 soll den Macro Matrix_Convertfont auf TerminusL1 verwendet werden.

    Das gleiche für TerminusL2.


    Schauen wir uns mal den Macro genauer an.

    Soviel kann ich nur sagen, dass der Macro Matrix_ConvertfontStep mehrfach aufgerufen wird. Warum auch immer.


    Dann schauen wir diesen Macro mal an:

    Und dann sehen wir noch ein weiteren Macro "Matrix_LCFont", der für die Umwandlung der Zeichen sorgt.


    In dieser Macro werden die Buchstaben aufgelistet, die umgewandelt.


    Und so könnte man dies einbauen.

    Im Hof-Datei wird ganz Normal die Textdarstellung genommen (Groß/Kleinschreibung)

    Grundsätzlich gibts erst mal nur das, was bisher zu sehen ist. Weitere Varianten seh ich dann. Das hängt sowohl von verfügbaren Maßen/Bildmaterial als auch Motivation ab.

    Zur Not sind wir Modder auch noch da 😂

    Weiß man welche Matrix er bekommt? Hersteller/Bauart

    Nach langer suchen habe ich tatsächlich noch das Video gefunden auf YouTube.


    Hier wird gezeigt, wie man das Gelenk exportiert.


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Ab 1:17:30 wird das exportieren gezeigt. Natürlich im .x Format. Genutzt wurde Blender v2.65.


    Wichtig ist, dass das Gelenk samt die Bones als einziger im Blender vorhanden sind.

    Alles andere müssen weg und von daher empfiehlt es sich, das Gelenk als neuer Blender Datei zu speichern.

    Hast du im Image Area unter View -> Proberties unter Reiter Image bei Source: als Single Image stehen?


    Dazu das betroffene Objekt auswählen und einmal in den Edit Mode gehen, damit die Textur im Image Area geladen wird.


    Da musste ich bei mir feststellen, dass unter "Image Sequence" oder "Movie" das angezeigte Bild in Magenta umfärbt.

    Hallo,


    Ich habe einen bestimmten Problem beim DirectX-Export im Blender 2.4x.


    Dieses Problem tritt nur bei einem Objekt auf und den gespiegelten Objekt.

    Alles andere lassen sich als DirectX exportieren.


    Es erscheint eine Error Meldung "Python script error. Check console"

    In der Console steht folgendes:

    Code
    exporting ...
    Traceback (most recent call last):
    File "<string>", line 172, in draw
    File "<string>", line 91, in my_callback_sel
    File "<string>", line 475, in exportSelMesh
    File "<string>", line 1134, in writeAnimationObj
    IndexError: list index out of range


    Es wird zwar eine X-Datei erstellt, aber es kommt eine Fehlermeldung "E/A-Fehler 103"

    Habe dazu einen Video gemacht, von die Vorgängen.


    Vielleicht gibt es eine Lösung

    Die Addons haben meistens eigene Variablen.

    So haben z.B. die C2's von Darius (Hamburg, Stadtbus17, Stadtgelenkbus, Gladbeck) die Variablen

    KY_cp_schiebefenster_wippL

    KY_cp_schiebefenster_wippU


    Ich hoffe das es jetzt ein Schreibfehler ist und als Dateiendung wirklich .olf genommen hast und nicht .ofl.


    Wichtig ist auch, dass zwischen die Variable und die Übersetzung ein TAB gemacht wird.


    Edit 22:07:

    Habe nachgeschaut. Für den Aachener Citaro werden die Befehle

    cp_fahrerfenster_up

    cp_fahrerfenster_down

    für den Schalter fürs Fahrerfenster benutzt.


    Dementsprechend muss in der .olf Datei so aussehen:

    DEU

    KY_cp_fahrerfenster_up TAB Aachen Citaro: Fahrerfenster schließen

    KY_cp_fahrerfenster_down TAB Aachen Citaro: Fahrerfenster öffnen


    Den .olf Datei habe ich extra in ein ZIP für dich gepackt. Einfach in OMSI 2\Languages entpacken

    Aachen_Bus.zip

    Wie sieht dein Material Eigenschaft im .x Datei aus?


    Darüber könnte man vielleicht auch Änderungen vornehmen (z.B. selbstleuchtend).

    Code: Eigenschaft aus dem SDK
    Material Mat1 {
     1.0; 1.0; 1.0; 1.0;;
     0.0;
     0.0; 0.0; 0.0;;
     0.0; 0.0; 0.0;;
     TextureFilename { "sdk1.bmp"; 

    Über die Werte kann ich den Inoffiziell / unofficial v0.02: OMSI-SDK_2DEU_0.02.zip empfehlen. Ab Seite 13 1.7 werden die Werte beschrieben.