2 Visible - Einträge einem Objekt zuordnen

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!
  • Moin, ich habe ne kleine Frage:


    Ich habe mir ein Fahrplanobjekt gemodded, hier der Eintrag:


    Der Fahrplan soll nicht erscheinen (bei angenommenem Fahrplan), wenn folgende setvar in der cti aktiv ist:

    Code
    [setvar]
    vis_SR_Kurs
    1

    Wenn sie nicht aktiv ist, soll er allerdings normal erscheinen.


    Jetzt die Frage: geht das mit diesem Eintrag (oberer Code)?

    Liebe Grüße, dari19!

  • der zweite visible-wert hat immer Priorität, weil die OMSI-Sachen immer von oben nach unten abgearbeitet werden. das kann je nach Anwendungsfall funktionieren, muss es aber nicht.

    Perotinus , Ich empfehle in so einem Fall (und mach es auch selbst so), ein kleines Script zu schreiben, um den Visible-Eintrag zu steuern.


    Code
    (L.L.VariableA) 
    (L.L.VariableB) &&
    {if}
        1 (S.L.Visible_Variable)
    {else}
        0 (S.L.Visible_Variable)
    {endif}

    Wenn beide Variablen aktiv, setzt er die visible-variable auf 1, sonst null. das geht natürlich auch mit "oder" oder kombinationen, die ungleich sein sollen.

    Code
    (L.L.VariableA) 
    (L.L.VariableB) ||
    {if}
        1 (S.L.Visible_Variable)
    {else}
        0 (S.L.Visible_Variable)
    {endif}

    in dem fall nur aktiv, wenn mindesteins eine von beiden aktiv

    Code
    (L.L.VariableA) 0 =
    (L.L.VariableB) 1 = &&
    {if}
        1 (S.L.Visible_Variable)
    {else}
        0 (S.L.Visible_Variable)
    {endif}

    oder hier nur aktiv, wenn VariableA nicht aktiv und Variable B aktiv.

    Das ganze einfach irgendwo in einem frame-marco eintragen und fertig. ;)




    Für die Profis hier ließe sich so ein script auch noch abkürzen:

    Code
    (L.L.VariableA) (L.L.VariableB) && (S.L.Visible_Variable)

    da für OMSI alles, was größer 0 ist, "true" ist und 0 "false", lässt sich das script oben auch noch abkürzen. der operator (und, oder, kleiner gleich, größer gleich etc.) gibt ja 1 und 0 aus wenn true oder false, was direkt wieder als Wert für die Visible-Variable genommen werden kann. spart die {if}-Schleife ein, ist aber schwieriger zu verstehen und zu lesen.