Solaris U12 alterr - Hilfe bei Gangwahlern

Das Forum befindet sich im reduzierten Betrieb. Die Addon- und Supportforen bleiben weiterhin verfügbar.
Bitte beachte, dass OMSI nicht mehr weiterentwickelt wird. Ein Teil der Entwickler widmet sich inzwischen der Entwicklung eines neuen Simulators. Weitere Informationen zum LOTUS-Simulator findest Du hier.
  • Guten Tag,


    Ich bin derzeit am modden des Solaris Urbino 12 zu der LVB Leipzig Version. Dabei habe ich auch die Voith Gangwahltaster von Morphi in den Solaris eingebaut.



    Derzeit ist es bei den Gangwahlern so, dass nach dem Start der Elektrik nur die Farbe des Gangs leuchtet, der eingelegt ist. In dem Fall des Bildes unten ist N eingelegt, d.h. dieser leuchtet rot. Wenn ich aber auf D switche, leuchtet N nicht mehr rot aber nur D leuchtet dann gelb.



    Ich hätte es gerne so, dass nach dem Start der Elektrik alle drei Gangwahler also D N R leuchten (N leuchtet sofort rot, D leuchtet gelb und R auch gelb). Es soll also nicht abhängig sein, welcher Gang eingelegt ist, sondern dass wirklich alle sofort leuchten.


    Ich weiß leider nicht, wie ich das Scriptseitig lösen kann, deswegen hoffe ich auf eure Hilfe.


    Ich danke für wirklich jede Hilfe!


    Beste Grüße,

    Brogamer

  • Das wird nicht im Script geregelt, sondern in der model.cfg.

    Du mußt lediglich die Leuchtvariable in der model.cfg einstellen


    [matl_change]

    Tagestextur.bmp

    0

    gangwahl_N


    So könnte es drin stehen. Das muß nun geändert werden:


    [matl_change]

    Tagestextur.bmp

    0

    elec_busbar_main


    Bedeutet nichts anderes, das der Texturwechsel nicht mehr dann stattfindet, wenn die Variable gangwahl_N aktiv ist, sondern wenn die Variable elec_busbar_main aktiviert wird (Fahrzeugstrom eingeschaltet).

  • Hallo Tatra,


    Vielen Dank für deine Hilfe. Alles hat wunderbar funktioniert und leuchtet jetzt vor sich hin. Man kann es sich eben auch schwerer machen. :D


    Jetzt hab ich aber noch ein kleines Problem.



    Wie du auf dem Bild siehst, habe ich die Türflügelsperre rein gemacht. Erstmal die rechte Tür (von außen gesehen) ist offen und die linke gesperrt. Im Display siehst du genau das selbe das die rechte offen ist und die linke gesperrt. Wenn du aber auf den Schalter für die Türflügelsperre schaust, ist es genau umgedreht, der Taster zeigt an das rechts gesperrt ist und links auf. Wie kann ich den Türflügelsperrenschalter jetzt umbauen, dass genau darauf auch das selbe wie bei der Tür und im Display abgebildet ist? Ich vermute mal das ist jetzt wirklich eine Scriptsache, was bestimmt irgendwie mit dem Doorscript oder Cockpit Script zusammenhängt...


    Vielleicht kannst du mir da auch noch weiterhelfen.


    Beste Grüße,

    Brogamer

  • Das ist schon richtig. Kann ich nicht mit einem Wort erklären. Hier gibt es mehrere Fragen, was du haben willst.

    Nun ist die Frage, wie dein Schalter aufgebaut ist. Ich vermute mal, das es ein einziges o3d-Objekt ist. Daher beschreibe ich nur diese Variante. Die Animation läuft vermutlich wie folgt ab: Von Position 0 nach recht - nach Links - zurück zu Position 0. Sollte es zwei Mausevents geben, dann melde dich nochmal.

    Somit hast du nur ein Mausevent in der model.cfg:

    Suche dieses

    [mouseevent]

    was_weiß_ich

    in der model.cfg. Als nächstes, suchst du dieses Mausevent im Script (Vorzugsweise zuerst wo es eigentlich hingehört. Der Schalter gehört zum Amaturenbrett. Also schaue in die cockpit.osc rein. Du solltest einen Trigger finden.

    {Trigger:was_weiß_ich}

    Darunter findest du die Variable "Schalteranimation", die ausgelesen wird:

    (L.L.Schalteranimation)

    Hier findet sich, wann etwas passieren soll. Indem Falle soll die Animation von 0 nach 1 nach -1 wieder auf die Position 0 gehen. Merke dir die Variable "Schalterposition".

    Suche nun in den Scripten, wo dieser Wert nochmals ausgelesen wird. Vielleicht in der Door.osc (kann sein, muß nicht).

    Irgendwo steht nochmals (L.L.Schalteranimation) und darunter finden sie die Variablen "Funktionsname_1" und "Funktionsname_2".

    Diese legen fest, wann eine bestimmte Funktion umgesetzt werden soll.

    (L.L.Schalteranimation) 0=

    Das bleibt unverändert.

    (L.L.Schalteranimation) 0 >

    (S.L.Funktionsname_1)

    und

    (L.L.Schalteranimation) 0 <

    (S.L.Funktionsname_2)

    Hier mußt du nur die variablen Funktionsname_1 und _2 austauschen.


    Soweit die Theorie, die Praxis ist leider kompliziert. Wie ist das Script aufgebaut, Wie wurde die Animation umgesetzt, gibt es einen kompletten Schalter oder 2 zusammenhängende Objekte??? Es kann auch ausreichend sein, wenn du in der model.cfg die Animationsrichtung änderst:

    [newanim]

    origin_from_mesh

    anim_rot

    Variable "Schalteranimation"

    12


    Mach hier einfach ein Minus vor die 12 und teste es! Vielleicht reicht es. Mir scheint so, als wenn es der MB von Alterr ist. Hier sind die Scripte sehr einfach und klar. Morphi setzt mehrere Funktionen hinzu, womit Scripte leider auch komplizierter werden können. Schau mal was du mit dem hier stehenden erreichen kannst.

  • So ich habe mir mal alles durchgelesen und soweit das Grundlegende erstmal kapiert. Das Fahrzeug ist der Solaris Urbino 12 von alterr mit aktuellstem Morphi Update.


    Ich habe somit erstmal in der Model.cfg nachgeschaut. Da ist wirklich nur ein Schalter. Ich hänge mal den Abschnitt aus der Model.cfg an:


    Dann habe ich den Befehl tuersperre erstmal allgemein in den Scripts gesucht. Dabei fand ich nur ein Eintrag in der door_manual.osc:



    Derzeit ist die Animation eben so, Schalter in der Ausgangsstellung. Dann geht er erst nach rechts, dann komplett nach links und dann wieder in die Ausgangsstellung.


    Die Animationsrichtung habe ich geändert, dann geht der Schalter aber nicht mehr nach rechts, sondern zwei mal weiter runter nach links.


    Ich weiß nicht ob es einfacher ist bzw. änderbar ist, dass ich z.B. nicht z.B. erst zwei mal drücken muss, dass der Schalter die linke Tür sperrt sondern, dass wenn ich den Schalter in die linke Richtung drücke, das dann die linke Tür gesperrt wird und umgedreht auch, wenn ich den Schalter rechts drücke, ist die rechte Tür gesperrt. Und wenn ich eben nochmal auf rechts z.B. klicke, dann geht er wieder in die Ausgangstellung. Das man halt nicht gezwungen ist sondern frei sofort die gesperrte Tür wählen kann. Vlt. wäre das auch noch machbar wenn man gleich bei den Scripten ist.


    Beste Grüße,

    Brogamer

  • Ich hänge mal den Abschnitt aus der Model.cfg an:

    Gute Entscheidung. Das passt auch.



    Dann habe ich den Befehl tuersperre erstmal allgemein in den Scripts gesucht.

    Dieses Scriptschnipsel ist lediglich der Befehl für den Schalter ansich. Es steckt irgendwo in den Scripten nocheinaml die Schalterabfrage (L.L.tuersperre_sw) drin. Diese mußt du zuvor suchen.


    Ich weiß nicht ob es einfacher ist bzw. änderbar ist, dass ich z.B. nicht z.B. erst zwei mal drücken muss, dass der Schalter die linke Tür sperrt

    Also änderbar ist es. Einfacher aber nicht. Dazu muß das Script umgeschrieben werden. Außerdem benötigst du ein weiteres Mesh. Wie gut bist du im 3D-Objektbau?

    Da der Schalter nur ein Objekt ist, gibt es nur die Möglichkeit, den Schalter (also das 3D-Objekt) in einem 3D-Programm zu ändern, oder ein kleines Mesh zu bauen, was man auf einer Seite des Tasters auflegt.


    Zum Script:

    Ich habe mal reingeschaut und sehe sofort ein kleines Problem.

    Es gibt mehrere Türscripte. Macht es für dich nicht gerade einfacher, aber es ist immernoch änderbar. Also keine Angst vpr den Scripten, einfach schauen.


    Welcher Bus genau welche Scripte verwendet, siehst du in der jeweiligen Busdatei. Die ganzen Versionen des Urbino 12 verwenden 3 verschiedene Scripte (door.osc/door_auto.osc/ und eine Variante für den 3 Türer), die sich in verschiedenen Ordnern befinden. Ist zwar nicht gerade die beste Lösung, hat aber für dich den Vorteil der Übersichtlichkeit. Also schau in die Busdatei, welches Türscript aufgerufen wird.



    Hier sind die im vorherigen Beitrag erwähnten Abfragen für den Schalter. Die Variable trg_bus_doorfront0 ist für den vorderen Türflügel, und trg_bus_doorfront1 für den folgenden Türflügel. Je nach Stellung des Schalters soll das entsprechende Türmacro ausgelöst werden. Hier mußt du nur die Operatoren auswechseln:

    (L.L.tuersperre) 0 >

    Der Operator ist das > und < (größer als-Zeichen / kleiner als-Zeichen)

    Größer als 0 bedeutet der Schalter ist nach Rechts gekippt. Beachte bitte, das zwischen der Ziffer 0 und dem Operator ein Leerzeichen stehen muß.


    Das salber findet sich auch bei den Automatischen Türen im {Macro:door_init} Erst kommt die Schalteranimation und dann die Türflügelsperre, für das Öffnen der Türen und dann für das Schließen der Türen. Damit es hier nicht ausartet, lasse ich den Teil bis hier stehen.

  • Hallo Tatra,


    Ich habe es jetzt soweit hinbekommen, sodass ich auch zufrieden mit bin.


    Wenn das mit Schalter nicht so schwer gewesen wäre, hätte ich es gemacht aber ist mir doch etwas zu aufwendig. Aber wie gesagt ich hab es jetzt so hinbekommen das es wie im realen ist. Deswegen passt das auch nun so. :)


    Ich danke dir sehr für deine Bemühungen und Hilfe.:thumbup:


    Beste Grüße,

    Brogamer