Innenanzeige Werbung durchschalten

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.
  • Würde es gehen das die zwei sich abwechseln.


    Ja, dass würde gehen. Es kommt auf deine Scriptfähigkeiten an.
    Für den rechten Bildschirm mußt du nur eine Wechseltextur erstellen und eine kleines Scriptschnipsel, dass dann nach Ablauf eines Zeitfenster's, nach 15 Sekunden die nächste Textur einblendet. Dabei ist es egal ob du nur 2 oder 80 Werbungen im Ordner hast. er schaltet dann immer das nächste ein.
    Solltest du garnicht scripten können, dann kannst du es auch nicht umsetzen. Denn ohne das Scriptschnipsel, geht es nicht.


  • Ja, dass würde gehen. Es kommt auf deine Scriptfähigkeiten an.
    Für den rechten Bildschirm mußt du nur eine Wechseltextur erstellen und eine kleines Scriptschnipsel, dass dann nach Ablauf eines Zeitfenster's, nach 15 Sekunden die nächste Textur einblendet. Dabei ist es egal ob du nur 2 oder 80 Werbungen im Ordner hast. er schaltet dann immer das nächste ein.
    Solltest du garnicht scripten können, dann kannst du es auch nicht umsetzen. Denn ohne das Scriptschnipsel, geht es nicht.


    Dann kann ich es vergessen, da ich kaum Ahnung habe vom scripten. Trotzdem danke für deine Hilfe.

  • Ist halt die Frage welche Variablen etc. relevant sind um die Werbung durchzuschalten.


    Das es dafür noch keine Variablen gibt, denn der Bildschrim oder etwas anderes wird ja nicht auf diese Weise durchgeschaltet, muß man die Variablen selber festlegen. Es gibt absolut niemanden der dir vorschreiben kann, wie eine bestimmte Variable heißt. Wenn du eine bestimmte Funktion abfragen möchtest (auslesen) dann machst du das mit (L.L.xyz). Dann mußt du aber auch auslesen, wie xyz richtig geschrieben wird.
    Beispiel:
    In den Script werden für den Bildschirm eigentlich nur zwei Sachen abgefragt, die bereits feststehen.
    Zum einen sollte man wissen, ob im Bus überhaupt Strom vorhanden ist. Da so ein Bildschrim nicht gerade wenig Strom braucht, sollte man abfragen, ob die Batterie wenigstens 60% Kapazität hat.
    (L.L.elec_busbar_main) 0.6 >
    Die Variable "elec_busbar_main" gibt an, wieviel Spannung auf der Batterie vorhanden ist (oder in selbiger). Sinkt die kapazität auf unter 60%, geht auch der Bildschirm nichtmehr. Wird der batterietrennschalter aktiviert, ist die Verbindung zur Batterie unterbrochen und auch dann funktioniert der Bildschrim nicht.
    Die zweite feste Variable ist die Abfrage einer feststehenden Zeit
    (L.L.Timegap)
    Du mußt also nur einen Timer mit einer festen Constante (also in diesem beispiel 15) starten und Omsi zählt dann den Timer runter, bis dieser Null erreicht.
    Also nach 15 x FPS (das sind 15 sekunden) ist der Timer dann abgelaufen.
    Wie der Timer heißt, oder wie das Ergebniss heißt, ist doch dir überlassen. Nenne ihn wie du es willst.
    (L.L.PR_timer)
    oder
    (L.L.Werbe_timer)
    und das selbe legst du dann auch als Ergebnis fest
    (S.L.Werbung_weiter)
    oder
    (S.L.Weiterschaltung_PR)
    oder wie auch immer. Gefallen dir diese Variablennamen dann verwende sie, findest du sie scheiße, suche dir selber welche raus.

  • Hier ein Beitrag von Chrizzly92. Ich würde euch bitten, dass ihr euch bei Chrizzly92 auch dafür bedankt:



    Damit schalten 2 Bilder immer hin und her. "Deine_Textur" ist nur ein Platzhalter. Hier muß dann der richtige Name der Textur incl. Dateiendung erscheinen.
    Ich betone nochmal, dass das Scriptschnipsel nicht von mir ist, sondern von Chrizzly92. Also bedankt euch nicht bei mir.

  • Hallo wahrscheinlich ist das eine der dümmsten Frage aber wo muss ich die Scripts eintragen?


    Kommt auf die Sichtweise an oder auf die Fragestellung. Im Prinzip braucht ein Bus im Scriptordner nur 4 Dateien.
    * Eine Scriptdatei.osc - wo die Berechnungen der Variablen mit anderen Variablen und Konstaten drin stehen und die Namen der Ergebnisvariablen festgelegt werden.
    * Eine Varlist.txt - wo die eingetragenen Variablen, Konstante usw. verifiziert werden, sonst sind diese ungültig.
    * Eine Stringvarlist.txt - wo Strings verifiziert werden, damit dieser erkannt werden können (und Omsi diese benennen kann).
    * Eine Constvarlist.txt - wo die festgelegten Werte für die Konstanten festgelegt werden.


    Das du im Scriptordner, der vorhandenen Busse sehr viele Dateien findest, ist dem Umstand geschuldet, dass man es übersichtlich halten wollte. Ansonsten würde das Erlernen und das finden, von Scripten, Scriptabschnitten sehr mühseelig werden. Diese Dateien wären dann sehr umfangreich. Also sind die Scripte in mehreren Teilen aufgeteilt worden, damit bestimmte Dinge in bestimmten Abschnitten stehen:
    - Motorscripte in engine.osc
    - Stromscripte in elec.osc
    - Türscripte in der door.osc
    - der Antrieb in der antrieb.osc
    - die Bedienelemente und Anzeigen im Amaturenbrett stehen in der Cockpit.osc
    usw und so fort.


    Wie die Scripte heißen, wie die Variablen heißen, wie die Konstanten heißen, ist solange vollkommen egal, solange man keine von Omsi festgelegten Werte abfragen möchte.
    Beispiel:
    Wenn du wissen willst, wie die Außentemperatur ist, bringt es nichts, die Abfrage zu legen:
    (L.L.wie_warm_ist_es_draußen)
    Damit kann Omsi nichts anfangen. Es gibt nur wenige Variablen die von Omsi festgelegt werden. Diese festgelegten Variablennamen werden auch auf der Omsi-wiki gezeigt und erklärt. Die meisten Variablen in den Bussen, die nicht von Omsi festgelegt sind, sind schlichtweg vom MAN SD übernommen worden. So heißt die Abfrage für die Bordspannung im Bus, bei den meisten Bussen in Omsi:
    (L.L.elec_busbar_main)
    Das liegt daran das Scripte meist aus anderen Bussen kopiert wurden.


    Du hast also die freie Auswahl, ob du es irgendwo einsetzt, ob nun in die Main.osc, in die cashdesk.osc für die Fahrkartenkasse, in die bremsen.osc für die Bremsen ....
    Allersdings kannst du es auch so setzten, das andere User später diesen Abschnitt schneller finden.
    Diese Werbetafeln gehören zur Innenanzeige. Wo würdest du die Innenanzeige vermuten, wenn es für die Innenanzeige kein eigenes Script gibt?
    Bei den meisten Bussen wird die Innenanzeige in der IBIS.osc festgelegt. Weil das IBIS diese Anzeige steuert. Das heißt aber nicht das du das auch machen musst. Du kannst es so machen. Aber du kannst auch ein neues Script erstellen. Es macht keinen Unterschied, ob es in der IBIS.osc steht, oder ob das selbe Script für das Informationssystem nun Atron.osc heißt oder INIT.osc oder Infosystem.osc. Es macht auch keinen Unterschied, ob du es bei den Bremsen reinhaust, im Antrieb, im Türscript oder sonstwo.


    Also wenn man sich mit Scripten nicht auskennt, ist die Frage nicht so blöd wie man denken mag. Erst wenn man weiß, wie Scripte im Bus funktionieren, was es mit den vielen Dateien im Scriptordner aufsich hat, dann ist die Frage wirklich unsinig. Also vor zwei einhalb Jahren habe ich auch solch eine "dumme" Frage gestellt. Vielleicht kannst du dir diese Frage nun selber beantworten, ob die dumm ist oder nicht oder ob das Wort "muss" nur falsch ist.


    Viel wichtiger ist also nun die Frage, ob du verstanden hast, wo das Script reingesetzt werden MUSS?

  • wenn ich ehrlich bin ich habe die Scripts in eine extra .osc eingepackt sieht so aus


    Modell so der abschnitt wo ich es reingemacht habe weil mein bus is jetzt nicht da sehen ihn zwar ihn der Auswahlmöglichkeit aber er kommt nicht


    bitte um hilfe

  • Also das der Bus verschwindet ist schonmal richtig. Ich kann mir halbwegs ausmalen, was du da zusammen geschustert hast. Du hast es wirklich 1:1 übernommen, so wie ich den Absatz von Chrizzly kopiert habe. Du hast nichts weiter gemacht, nichtmal die normalen notwendigen Arbeitsschritte, die dazu gehören.Hast du dich überhaupt jemals mit den Scripten beschäftigt, wie die Zusammenhänge in Omsi sind, also nur die Scriptüblichen Zusammenhänge? Gut, dass ist jetzt eine rein rethorische Frage.


    Wie heißt denn dein Macro?
    Wo hast du das Macro eingetragen?
    Hast du die Variablen verifiziert?
    Wieso soll die Anzeige mit der Bordspannung tauschen / wechseln?


    PS: Könntest du bitte anständig schreiben ... mit Satzzeichen und etwas mehr Rechtschreibung?

  • Ich hoffe du hast den Beitrag von Tatra soweit gelesen und verstanden, du kannst diesen Code nicht einfach nur kopieren und einfügen. Dieser Code - von Chrizzly - ist universal geschrieben und soll nur die Funktionsweise eines solchen Scripts demonstrieren. Dieser Code aber nichts mit dem TFT Bildschirm von V3D gemeinsam, dort werden ganz andere Variablen, Strukturen etc. benutzt.


    Dein Code weiß gar nicht was er tun soll, weil du ihm im Endeffekt nicht sagst womit er arbeiten soll. Du kannst diesen Schnipsel aber soweit anpassen. Das würde funktionieren.


    Eigentlich hat ja Tatra insoweit schon alles erklärt, man muss es nur noch umsetzen.


    Im übrigen wäre es sehr nett du würdest ein Logfile posten, dann kann ich dir nämlich sagen wo der Fehler liegt.


    Bene:


    Code
    1. varlist:
    2. Werbung_Timer
    3. stringvarlist:
    4. Tauschtextur


    Dieser Teil darf nicht in der OSC Datei stehen, du musst eine Stringvarlist (zB. wechseltextur_stringvarlist.txt) und eine Varlist (zB. wechseltextur_varlist.txt) anlegen und Tauschtextur in eben diese Stringvarlist Datei und Werbung_Timer in die Varlist Datei schreiben.


    Diese zwei Dateien verknüpfst du jetzt noch in der Bus Datei.


    Wen du das nicht getan hast, wird dir OMSI ins Log File schreiben das die Variable nicht deklariert wurde. OMSI löst eine Zugriffsverletzung aus und Ende im Gelände.

  • Hallo,

    Ich habe mich jetzt mit dem Thema auseinandergesetzt und bin auch soweit gekommen, dass der Monitor zwischen zwei Werbungen durchschaltet.

    Allerdings würde ich jetzt gerne einen Ordner definieren, in den ich beliebig viele Dateien legen kann, welche dann von dem Monitor umgeschaltet werden.

    Fragt sich nur, wie man das macht^^

    (Die verwendete Anzeige ist eine privat erstellte Anzeige von Cooper)


    LG


    /Edit

    Habe es mittlerweile selbst geschafft.