Citaro Facelift: Kasse über [setvar] einstellen

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.
  • Hallo Zusamen!
    Ich versuche momentan über ein [setvar] Befehl zwischen der I.Box und dem Almex Drucker im Facelift zu wechseln. leider klappt das noch nicht ganz so gut:



    Ich vermute, dass diese Fehler dadurch entstehen, dass die o3d Dateien mehrere [visible] Einträge besitzen, bin mir aber nicht sicher.
    Vielleicht kennt sich jemand von euch damit mehr aus.

    :)


    Liebe Grüße
    Matthes

    :)
  • du kannst einem Mesh nicht 2 visible befehle geben. Du musst das ganze dann scriptseitig für jedes einzelne Mesh, welches ein- oder ausgeblendet werden soll, umsetzen und eine weitere bedingung hinzufügen.

  • du kannst einem Mesh nicht 2 visible befehle geben.


    Sorry Chrizzly, aber das ist nicht richtig. Man kann einem Objekt sehr wohl 2 Visible-Befehle geben. Klappt bei einem meiner Projekte Problemlos.
    Im Ikarus 250 habe ich unter anderem dem Textfeld der Gang-Anzeige 2 vsisble-Befehle verpasst. Der eine visible-Befehl schaltet das Textfeld aus, wenn der Strom getrennt ist, damit die digitale Anzeige nicht's anzeigt, wenn der batteriestrom getrennt wurde oder unter 10% Batteriekapazität liegt. Mit dem zweiten visible-Befehl kann ich mittels Klickpoint die ganze Anzeige verschwinden lassen. Und das funktioniert ganz hervorragend.

  • ja, das mag auch bedingt funktionieren. Allerdings wird die model.cfg (per frame?) von Oben nach unten "gelesen", sodass immer nur der unterste Eintrag einen Einfluss auf das objekt hat. Das heißt also im Umkehrschluss, dass das Umschalten eines Textfeldes scriptseitig eventuell nicht funktioniert, wenn der visible eintrag für die Steuerung über Setvar erfolgt. Setze ich via Setvar meine Radkappen auf 1, werden sie angezeigt. negiere ich diesen Befehl mit einem zweiten visible, wird diese variable in jedem fall überschrieben - das habe ich eben getestet. lese ich den setvarbefehl und schreibe ihn scriptseitig in jedem frame neu, könnte das eventuell funktionieren - bedenke aber, dass es in diesem Konkreten fall darum geht, eine variable über das Repaint zu steuern, was du - ohne anderweitige scripteingriffe - nicht beeinflussen kannst.


    Es bleibt also nur die möglichkeit, dem Script explizit über eine Bedingung zu sagen, dass das Repaint Kasse A vorgibt und scriptseitig die kasse B dauerhaft ausgeblendet wird - denn wechselt ein textfeld auf visible, überschreibt das den visible-tag aus der CTI. Alternativ könnte man auch, wie oben bereits erwähnt, die CTI variable per Frame in eine "neue" Visiblevariable schreiben, dass ist aber eine Unsaubere lösung und kann durchaus zu flimmern oder bugs führen.

  • Also ohne die Steuerung über die Repaints funktionierte es bisher komplett ohne Probleme. Dann sollte es aber möglich sein, daß ganze über das Script zu steuern. Das stelle ich mir mit Schattenbefehle vor. Dann steht nur ein visible-Befehl in der model.cfg und kann trotzdem über das Repaint gesteuert werden. Zumindest in der Theorie. Praktisch habe ich es noch nicht versucht.
    Beide Befehle für das Textfeld laufen bei mir über zwei Trigger, die zwar untereinander stehen, aber trotzdem unabhängig voneinander sind.


    @EVAGFan: Zur Not kannst du auf die Steuerung via Repaint verzichten und mit einem Klickpoint arbeiten, dann geht das auf jeden Fall.

  • es kann ja logischerweise immer nur einer aktiv sein, sonst heben die sich gegenseitig auf - daher ist das eine sehr unsaubere Umsetzung. eine Unterscheidung via Script wäre da wesentlich sauberer und funktioniert auch in jedem Falle. Die CTI Variable wird ja nur einmal gesetzt und bleibt so lange bestehen, bis du das fahrzeug entfernst.



    Und Tatra: NEIN, das geht nicht "aufjedenfall" mit einem Klickpoint. Wie verhalten sich denn dann dementsprechend 2 Visiblevariablen, die ich im selben Frame jeweils den einen auf 0 und den anderen auf 1 setze? In der Theorie hebt sich das auf, in der Praxis allerdings nicht. Dein Script legt pro Frame fest, wann eingeblendet wird und wann nicht. dann überschreibst du diese Variable mit deinem Klickpoint - und zwar garantiert in jedem Frame, da sonst das "automatische" Script aktiv wird. Es können nicht 2 visible variablen gleichzeitig aktiv sein. tauschst du die visible variablen in der model.cfg aus (als schiebst den hinteren vor den vorderen) könnte ich wetten, dass das nichtmehr problemlos funktioniert.


    Die einzige Lösung, die bei so einem komplexen Gebilde vernünftig funktionieren kann, ist die auswertung deiner Bedingungen und das schreiben in deine sogenannten "schattenbefehle":




    das ganze könnte beispielsweise so aussehen. würde dein Beispiel problemlos funktionieren, hätte ich mir all das sparen können - aber leider ist das nicht der fall.

    ;)


    Bei einem Drucker reicht es glücklicherweise, zu jeder bedingung, die eine visiblevariable schreibt, eine weitere Bedingung hinzuzufügen :


    (L.L.alte_variable) (L.L.CTI_variable) &&
    {if}
    blabla
    {endif}

  • Also mit den Schattenbefehlen, habe ich bisher nur das Innenlicht umgesetzt. Da fiel mir keine andere Lösung ein, auch wenn man dort andere Wege einschlagen könnte.


    (L.L.Untenrechts_sw) (L.L.elec_busbar_main) 0.2 > && (S.L.Schattenbefehl1)
    (L.L.Unterdeck_sw) (L.L.elec_busbar_main) 0.5 < && (S.L.Schattenbefehl2)


    (L.L.Schattenbefehl1) (L.L.Schattenbefehl2) (L.L.elec_busbar_main) 0.2 >

    ||

    && (S.L.licht_untenrechts)
    Das ist für die Notbeleuchtung im Mercedes Benz. Allerdings habe ich den Vorteil den visible-Befehl nicht zu brauchen, weil ich ja nichts wechseln muß.


    Und Tatra: NEIN, das geht nicht "aufjedenfall" mit einem Klickpoint. Wie verhalten sich denn dann dementsprechend 2 Visiblevariablen, die ich im selben Frame jeweils den einen auf 0 und den anderen auf 1 setze?


    Da haste mich falsch verstanden. Mit einem Klickpoint brauche ich nur einen visible-Befehl je Matrix. Und das war ja die Frage von EVAGFan gewesen. Er möchte es ja so umsetzen wie in einigen anderen Bussen bereits möglich (MB O407, MB O405 von Perdo) wo man mittels visible-Befehl das Steuergerät / Kasse wechselt, die ohne Bordspannung kein Display anzeigt. Bei Perotinus geht die Umschaltung via cti und bei Pedro mittels Klickpoint.


    @EVAGFan: Nun haste noch eine Lösungsvariante von Chrizzly, womit du deine Matrix umschalten kannst. Mußt nur einige Befehl auf deine Komponenten anpassen. Herzlichen Dank an Chrizzly.