Evadys - Problem mit Interior Lights // Issue with the Interior lights

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 Community!

    Ich habe mal wieder eine Tour mit dem Evadys von Kescrole machen wollen, einen Nachtumlauf auf Berlin X10.

    Hab also alles soweit vorbereitet, einschließlich dem Licht in der Kabine.

    Nun habe ich das Problem, dass sich die Fahrgäste beschweren dass das Licht aus sei, obwohl dieses aber an ist.


    Wie gut/einfach kann man das fixen? Die Logfile wirft diesbezüglich keinen Fehler.


    Ich weiß dass der Evadys schon länger draußen ist, aber ich habe erst heute meinen ersten Nachtumlauf geplant gehabt, wobei mir das aufgefallen ist.

    Danke schonmal!


    LG schulzkr2604


    _______________________________

    English:

    Hello there fellow OMSI-Community,

    I've got an issue with the interior lights from Kescrole 's Iveco Evadys. When I'm travelling at night, the passengers are commenting that it's too dark inside the bus, although all the lights are switched on. Is there an easy solution for this problem? I didn't find anything about this situation yet, neither in the Webdisk nor on MOF. The logfile itself is also without any entrys regarding this point.

    I'm appreciating every reply and every possible solution you can provide me ^^

    All the best and many thanks in advance!


    schulzkr2604

  • DarkStar2604

    Hat den Titel des Themas von „Evadys Lichtfehler“ zu „Evadys - Problem mit Interior Lights // Issue with the Interior lights“ geändert.
  • Ja genau, die meisten Busse nehmen ja das Standardscript, das ist mir bewusst. Aber das ist hier leider nicht der Fall.

    Ich habe die Lichttaster ja definiert auf der Tastatur, und wenn ich es über die Tasten mache passiert eben leider auch o.g. Fall...


    Und so gut kenne ich mich wahrlich nicht in der Bearbeitung von Modeldateien aus um das korrekt umzusetzen welche Einträge abgeändert werden müssten...

  • Wenn im Bus die Schalter fehlen, aber im SCrpt drei Lichtkreise sind, will Omsi auch 3 Lichtkreise sehen.

    Hier ist nur die Alternative, ins Lichtscript zu gehen und nach der Definition des Lichtes suchen. Dort sollten die 3 Lichtkreise als Abfrage drin stehen:

    • L.L.Light_unten_rechts
    • L.L.Light_unten &&
    • L.L.Light_oben &&

    und darunter steht dann, irgendetwas von

    S.L.light_on oder weiß der Kuckuck.

    Hier nimmt man ein oder auch 2 Kreise raus und Omsi akzeptiert auch einen Lichtkreis als ausreichend.

    Oder man ersetzt das && (UND) durch ein || (ODER), dann akzeptiert Omsi auch einen der Lictkreise im Bus.

  • Hmm okay muss ich mir zeitnah mal anschauen wie genau das Licht im Evadys drinnen steht.



    Es sind ja alle Lichter vorhanden, nur halt anscheinend stimmt der Code nicht an den diese gekoppelt sind.


    Wie gesagt schau ich mir mal an👍🏻

  • Okay ich werde nicht wirklich schlau aus dem Script, vielleicht kapiere ich das auch nicht wirklich, aber es scheint einfach per Copy&Paste aus dem Standard-SD200 übernommen worden zu sein.

    Ich lade das Script mal im Anhang hoch

    (das Original "lights" ist natürlich als .osc abgespeichert, nur zum Hochladen hier musste ich es konvertieren in eine .txt!)

    Vielleicht kann mir ja einer weiterhelfen um welche Variablen es geht und was ggf. angepasst werden muss


    Hier mal Bilder von der Situation:



    Alle verfügbaren Innenraumlichter sind eingeschalten, aber die Fahrgäste beschweren sich dennoch....

  • Im Anhang ist das Script wohl verloren gegangen.

    Wenn du es nochmal anhängst, kann man dir die Stelle zeigen und Änderungen vorschlagen.


    Die Fahrkunden reagieren nicht auf eventuell eingebaute Lichter, sondern allein auf die Schalterstellungen und die daraus resultierenden EInstellungen.


    ... vielleicht kapiere ich das auch nicht wirklich, ...

    Erwartest du, dass du das Omsi-Script verstehst, wenn du ein- oder zweimal reinschaust? Arbeite mal einige Zeit in den Scripten, dann kapierst du es wirklich. Zudem kommt hier ein weiteres Problem hinzu. Es gibt nicht EIN Script für die Lichtsteuerung, sondern es ist in ZWEI Scripten verteilt.


    Zur Lösung:

    Es gibt sehr viele Lösungsansätze um das Problem zu klären. Ich versuche es ein wenig zu erklären und verschiedene Lösungsansätze aufzuzeigen.

    Zum einem finden sich in der cockpit.osc (Script für Amaturenbrettdetails), die Stellungen für die Schalter und der daraus resultierenden Schalterfunktionen.

    Code
    '        Beleuchtung Oberdeck
            (L.L.cp_licht_oberdeck_sw) (S.L.lights_beleuchtung_oberdeck)
    '        Beleuchtung Unterdeck
            (L.L.cp_licht_unterdeck_sw) (S.L.lights_beleuchtung_unterdeck)
    '        Beleuchtung unten rechts
            (L.L.cp_licht_untenrechts_sw) (S.L.lights_beleuchtung_untenrechts)

    Hier wird festgelegt, welcher Schalter, einen Teil der Innenbeleuchtung schaltet. In der model.cfg wirst du nicht alle Variablen wiederfinden, da der Bus vermutlich kein Licht im Oberdeck besitzt. Aber wichtig sind die Variablen:

    • lights_beleuchtung_oberdeck
    • lights_beleuchtung_unterdeck
    • lights_beleuchtung_untenrechts

    Diese sollten sich im Script: light.osc oder vergleichbaren Script finden. Es können sich aber auch im Cockpit-Script weitere Festlegungen befinden.

    Wichtig ist folgender Abschnitt:

    Code
    (S.L.AI_Light)
    (L.L.lights_beleuchtung_oberdeck) (L.L.lights_beleuchtung_oberdeck) (L.L.lights_beleuchtung_unterdeck) && && (S.L.AI_Interiorlight)

    Hier wird festgelegt, dass alle 3 existierende Lichtkreise aktiviert sein müssen, damit die Fahrkunden das Licht als eingeschaltet zu erkennen. Laß dich nicht durch das AI täuschen, das gilt auch für den Spielerbus. Hier kannst du einiges ändern.

    Entweder entfernst du zwei der drei Lichtkreise und die Operatoren oder du änderst nur die Operatoren von UND zu ODER. Das genügt schon, die Beleuchtung im Bus auf einen eingeschalteten Lichtkreis zu ändern, damit sich keiner mehr beschweren kann.


    Soweit ist es auch einfach. Nun kommt das was es schwer macht:

    1. Es ist nicht festgelegt, wo man ein Trigger oder Macros einträgt. Es kann sich also überall in irgendeinem Script befinden.
    2. Die verwendeten Variablen, können auch geändert und angepasst werden. Nicht vordefinierte Variablen, können umgeschrieben werden.
    3. Schaue immer in die laststn.osc im Map-Ordner nach. Dort findest du die Variable AI_Interiorlight und darunter den eingestellten Wert.
    4. Schaue auch in der model.cfg, welche Variablen im Bus zur Anwendung kommen.
    5. Kommst du gar nicht weiter, dann kopiere den Abschnitt des Innenlichts hier rein und man kann dir Vorschläge zum umstellen geben.

    Die hier gezeigten Scriptschnipsel sind aus den Doppeldeckern, können also im Iveco anders aussehen.

    Tabsi Gruß von Tabsi und

    Tatra Bahn

    Einmal editiert, zuletzt von Tatra ()

  • Im Anhang ist das Script wohl verloren gegangen.

    Wenn du es nochmal anhängst, kann man dir die Stelle zeigen und Änderungen vorschlagen.

    Also hier sind nochmal die betreffenden Scripts direkt ausm Evadys selbst:


    lights:
    lights.txt


    model:

    evadys.txt


    cockpit:

    cockpit.txt


    Die Hauptdateien sind im Evadys als ".osc" respektive ".cfg" gespeichert, aber die kann ich hier nicht hochladen. -> Deswegen die Umformatierung als ".txt"





    EDIT I: also laut der .cfg-Datei heißen die Variablen "cp_lights_int_1" ; "cp_lights_int_2" ; "cp_lights_int_3"


    Folglich müssen also diese drei Variablen auch sowohl im cockpit- als auch im lights-Script drinne sein, korrekt?



    EDIT II: Wenn dem so sein sollte, habe ich glaube ich gefunden was das Problem ist. Denn eben diese Variablen erscheinen nicht in der lights.osc, da stehen dafür die Variablen aus den Doppeldeckern (also Oberdeck, Unterdeck etc) drinne, die wiederum nicht in .cfg oder der cockpit-Datei liegen

  • Deswegen die Umformatierung als ".txt"

    Alle Dateien im Script-Ordner sind reine TXT-Dateien. Die bekommen nur eine Änderung der Dateinamen, damit Omsi diese auslesen kann. Man könnte es auch als Textdatei stehen lassen.



    Folglich müssen also diese drei Variablen auch sowohl im cockpit- als auch im lights-Script drinne sein, korrekt?

    Nicht ganz. Es gibt ja zwei Befehle (Variablen) für das Licht.

    1. Die Schalter nutzen die alten Variablen aus dem SD 200.

    2. Die Lichtpunkte nutzen die neuen Befehle (Variablen).

    3. Die Verbindung zwischen Lichtschalter und Lichtpunkte nutzen beide Befehle.


    Daher empfehle ich folgendes Vorgehen:

    Im Script: light.osc - im {Macro lights._frame}

    Code
            (S.L.AI_Light)
    
            (L.L.lights_beleuchtung_oberdeck) (L.L.lights_beleuchtung_unterdeck) && (S.L.AI_Interiorlight)

    ändere die letzte Zeile wie folgt um:

    (L.L.lights_beleuchtung_oberdeck) (L.L.lights_beleuchtung_unterdeck) || (S.L.AI_Interiorlight)

    Alternativ kannst du auch eine der beiden Variablen löschen. Teste aus, was es wirklich bringt.


    Beim Überfliegen der model.cfg habe ich den oder die Lichtschalter für das Innenlicht nicht gefunden. Also mußt du weitersuchen. Die alten Variablen aus dem SD 200 wurden gewechselt.

    EDIT I: also laut der .cfg-Datei heißen die Variablen "cp_lights_int_1" ; "cp_lights_int_2" ; "cp_lights_int_3"

    Das sind lediglich die Variablennamen für die Lichtpunkte, nicht für die Lichtsteuerung. Du wirst weiter suchen müssen.


    Zitat

    Folglich müssen also diese drei Variablen auch sowohl im cockpit- als auch im lights-Script drinne sein, korrekt?

    In welchem Script die drin stehen, kann ich nicht sagen. Denke bitte unbedinkt daran, das es nicht in einem bestimmten Script drin stehen muß.

    Hier geht es nicht um das eigentliche Licht im Inneren, sondern allein um die Lichtschalter im Cockpit. Aber diese Variablen, finden sich nicht in der model.cfg für den Lichtschalter (nur die Lichtpunkte). Daher teste die obere Variante oder suche nach weiteren Scriptschnipseln.

    Hier wurde leider massiv gepfuscht. Alte unbrauchbare Scrptschnipsel blieben drin, Neues wurde dazugestellt und alles ohne vernünftige Objektnamen. Die restlichen Scripte sind von allen anderen Bussen zusammen gewürfelt. Ich finde Scriptschnipsel von Chrizzly92, von iTram und auch von mir, aber auch von Darius Bode.


    Dir bleibt nichts anderes übrig, als alle Scripte zu durchsuchen, wo es eine Verbindung zwischen den alten Variablen aus dem SD 200 und den neuen, von dir gefundenen Variablen bestehen. Die Scripte light und cockpit kannst du mißachten, diese beinhalten nichts davon, nur die Schalter (cp = cockpit). Auch die Variable lights_int_1 ist nicht vorhanden.

  • Alle Dateien im Script-Ordner sind reine TXT-Dateien. Die bekommen nur eine Änderung der Dateinamen, damit Omsi diese auslesen kann. Man könnte es auch als Textdatei stehen lassen.

    Ah okay wusste ich net:thumbup: gut zu wissen, danke dafür.



    Du wirst weiter suchen müssen.

    Ich hab mal die N++-Suche bemüht. Könnte das evtl. auf die gesuchten Lichtschalter passen (sw -> switch -> Schalter)??



    ändere die letzte Zeile wie folgt um

    Das habe ich gerade gemacht, versuche ich aus ob es was bringt :thumbup:




    eine der beiden Variablen löschen

    Was meinst du genau damit? Meinst du dass in dieser Zeile dann nur noch entweder


    Code
     (L.L.lights_beleuchtung_oberdeck)

    oder


    Code
    (L.L.lights_beleuchtung_unterdeck)


    steht?






    Hier wurde leider massiv gepfuscht. Alte unbrauchbare Scrptschnipsel blieben drin, Neues wurde dazugestellt und alles ohne vernünftige Objektnamen. Die restlichen Scripte sind von allen anderen Bussen zusammen gewürfelt. Ich finde Scriptschnipsel von Chrizzly92, von iTram und auch von mir, aber auch von Darius Bode.

    Schon bitter, gerade bei einem Modder wie Kescrole. Aber na ja was soll's.



    Also ich probiere das mal, vielleicht war einfach die Umstellung von UND auf ODER schon ausschlaggebend dass es jetzt geht...

    • Hilfreichster Beitrag

    Könnte das evtl. auf die gesuchten Lichtschalter passen ... ??

    Das erste JA, der Rest wol weniger. Das könnte aber wirklich der Lichtschalter sein. Also der erste markierte.

    Nur leider fehlen diese Variaboen in den beigelegten Scripten. Daher könnte es der vermutete Schalter sein.

    Prüfen kannst du es iwe folgt_

    1. Starte ein neues Spiel (Beispiel auf Grundorf), setze den Bus und schalte alle an, außer das Innenlicht.
    2. Schaue dir dir Laststn.osc im Map-Ordner an und suche dort die Variable cp_lights_hold
    3. Besser ist aber, die laststn.osc auf dem Desktop auszulagern und dort zu speichern.
    4. Nun starte Omsi neu und lade die vorherige Version neu ein und mache absolut nichts am Bus, außer das Innenlicht einzuschalten.
    5. Beende Omsi und ziehe die laststn.osc aus dem Map-Ordner - vergleiche diese mit der alten laststn.osc vom Desktop.

    Es soööten sich lediglich 2 Variablen verändert haben .... der Scalter und das Innenlicht.


    Welche Werte haben sich verändert???

    Diese Variable ist für das Innenlicht verantwortlich und zuständig. Ist etwas kompliziert, aber immernoch die einfachste Variante.


    Meinst du dass in dieser Zeile dann nur noch entweder ...

    Mal kurz zur Erklärung:

    L.L. = Lese den Wert dieser Variable aus

    S.L. = Schreibe diesen Wert für die Variable (oder speichere)

    Entweder etwas weg lassen ....

    Code
     (S.L.AI_Light)
    
            (L.L.lights_beleuchtung_oberdeck) (S.L.AI_Interiorlight)

    oder

    Code
     (S.L.AI_Light)
    
            (L.L.lights_beleuchtung_unterdeck) (S.L.AI_Interiorlight)

    oder

    Code
     (S.L.AI_Light)
    
            (L.L.lights_beleuchtung_oberdeck) (L.L.lights_beleuchtung_unterdeck) || (S.L.AI_Interiorlight)

    Mische nicht alles durcheinander. Versuche zu verstehen was dort steht.

    Im letzten Quellcode steht

    (Lese den Wert lights_beleuchtung_oberdeck) ODER (Lese den Wert Lights_beleuchtung_unterdeck)

    Hat eines von beiden den Wert 1, dann speichere das Ergebnis 1 in AI_Interiorlight


    Das ganze nochmal, in der alten Version mit &&

    (Lese den Wert lights_beleuchtung_oberdeck) UND (Lese den Wert Lights_beleuchtung_unterdeck)

    Haben beide den Wert 1, dann speichere das Ergebnis 1 in AI_Interiorlight.

    Daraus folgt:

    Ist eines von beiden nicht 1 (also nur eines ausgeschaltet oder beide), dann speichere den Wert 0 in AI_interiorlight.


    Um die Berechnung des Scriptes einfach zu erklären, nutze ich erfundene Variablen:

    Fahrerlicht:

    (L.L.Fahrerlict_sw) ! (S.L.Fahrerlicht)

    heißt: Wird der Schalter Fahrerlicht betätigt, wird der Wert von 0 auf 1 geändert. Damit bewegt sich der Schalter, aber nicht das Fahrerlicht.

    in einem anderen Script steht nun:

    (L.L.Fahrerlicht) (L.L.Fahrzeugstrom) && (S.L.Fahrerlicht_ein)

    heißt: Ist der Schalter 1 und der Fahrzeugstrom 1 (also eingeschaltet) dann aktiviere das Fahrerlicht.

    Somit kann man den Schalter jederzeit bewegen, unabhängig vom Licht. Das Licht geht nur an, wenn auch der Strom dafür da ist. Der Schalter funktioniert ja auch ohne Strom.


    Kontrolliere oben, wie geschrieben, die laststn.osc im Map-Ordner und suche dann diese Variable in den Scripten, wenn sich der Wert geändert hat.

  • Okay also, Halleluja, es hat geklappt.


    Die betreffende Variable ist "cp_lights_int_1" die sich ändert und die verantwortlich ist.



    Ich habe jetzt "cp_lights_int_1" in die lights_varlist.txt am Ende hinzugefügt, und die lights.osc entsprechend angepasst, sodass jetzt folgend da steht:

    Code
    368        (S.L.AI_Light)
    369
    370        (L.L.cp_lights_int_1) (S.L.AI_Interiorlight)

    bin jetzt 3 Runden lang Grundorf um 22 Uhr nachts gefahren und niemand hat sich beschwert dass es zu dunkel wäre.




    Ich danke dir unendlich für deine Hilfe Tatra beim Bewältigen dieser (für jemanden wie mich) Monsteraufgabe in den Tiefen des Omsi-Scriptings ;)


    Außerdem habe ich jetzt ein besseres Verständnis über den Grundaufbau der Scripte in OMSI, und was die Abkürzungen und Symbole bedeuten. Das könnte mir sogar in anderen Scripttechnischen Angelegenheiten von Vorteil sein.


    Nochmal ganz ganz großen Dank!