Probleme mit dem Abfahrtssound

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.
  • Wie man im Thema schon lesen kann, wollte ich einen ,,Abfahrtssound,, erstellen. Sobald die Haltestellen Bremse heraus, und die Türen geschlossen werden, soll ein Sound namens IBIS_piep4(2) abgespielt werden.
    Nun aber das Problem: Ich bin der größte Script-Noob und dachte mir, dass es ein gutes und vorallem Einfaches Einsteiger-Thema wäre: Alle Türen soll zu, und die Haltestellenbremse soll deaktiviert sein. Das Problem: Es funktioniert nicht. Im Auswahlfenster in OMSI Steht dann immer:,,Argument außerhalb des Bereiches,,
    Noch kleine Info´s:


    [1] . :Also angefangen habe ich damit, die Sounddatei, sprich ,,IBIS_piep(2).wav in den Soundordner des MAN_NL_NG zu verschieben und folgendes in die sound_EN92.cfg einzutragen:


    [2] . : Weiter geht´s: Dann legte ich mir eine neu .osc Datei namens abfahrt_4.osc an. In sie schrieb ich folgendes:

    Nun, ich bin ein absolouter Script-Anfänger und habe keine Ahnung von Script´s in OMSI (im Gegensatz zu HTML

    :D

    oder Blender)



    [3] .: Wie gesagt, wenn ich in OSMI gehe kommt dann nur bei der Auswahl des Busses: Argument außerhalb des Bereiches.




    Über Antworten würde ich mich freuen

    :P



    ole_2805

    8 Mal editiert, zuletzt von Lukas () aus folgendem Grund: Nicht vollständig

  • Eieieieiei was für eine Sauerei.

    :P


    Code
    1. {macro:abfahrtsound_frame}
    2. 'Spielt den Ton IBIS_piep4 (2).wav ab, wenn Vehikel bereit'
    3. (L.L.bus_doorfront0) 0 = &&
    4. (L.L.bus_doorfront1) 0 = &&
    5. (L.L.bus_doorfront2) 0 = &&
    6. (L.L.bus_doorfront3) 0 = &&
    7. (L.L.bremse_halte_sw) 0 =
    8. {if}
    9. (T.L.abfahrt_abspielen)
    10. {end}


    Probier es mal so.

  • Du hast Trigger als Bedingung geprüft. Trigger sind die Befehlabfolgen, die ausgeführt werden, wenn ein Trigger gedrückt wurde.
    Wenn es bei einer Bedingung kein "andernfalls" gibt, dann schreibt man einfach garnichts.
    Hinter den Nullen bei im {if} Block hast du kein Leerzeichen vor dem "=" gehabt.
    Und du hast das {endif} vergessen.

    ^^


    Mir ist gerade aufgefallen, dass mein Scriptblock so nicht funktionieren kann. Tut er es bei dir doch?


    Also wenn er nicht funktioniert, dann sollte das aber gehen:


    Du musst dann noch in eine beliebige Varlist bus_door_was_open eintragen.
    [/font]

  • Okay, danke für die Antwort. Aber warum diese 0.5 oben?
    Und da steht immer noch Argument außerhalb des Bereiches. Was soll ich wo eintragen?

  • Naja, es war ein Kompromiss. Wenn die Tür halb offen war, dann wird die Freigabe für den Sound aktiviert. Du kannst dort jede beliebige Zahl zwischen 0.1 und 1 eintragen.


    Allerdings garantiere ich nicht für die Richtigkeit sämtlicher Scriptblöcke von mir. Wie man in meiner "Beruf" Angabe im Profil sieht bin ich selber noch ein kleiner Anfänger

    :P
  • Das "Istgleichzeichen" kann man aber auch weglassen.


    [L.L.bus_doorfront0) !
    (L.L.bus_doorfront1) ! &&
    (L.L.bus_doorfront2) ! &&
    (L.L.bus_doorfront3) ! &&
    (L.L.bremse_halte) ! &&


    Der Rest passt natürlich. Omsifan hat lediglich einmal das UND nach oben geschrieben statt nach unten (Flüchtigkeitsfehler). Da müßte von Omsi bemängelt werden.


    Und du solltest testen, ob der Befehl wirklich bus_doorfront0 heißt, weil in den meisten Bussen wird die Türabfrage mit
    door_0
    usw angefragt.
    Bus_doorfront2 und 3 kann nicht stimmen, weil der Bus keine 4 Fronttüren hat.


    Die 0.5 steht für die Stellung der Tür, hier sind bis zu maximal 8 stellen hinter dem Punkt abfragbar.
    0.0000162 geht also auch

    :D

    Ist nur Übertrieben.


    Wenn man die Türstellung direkt abfragen möchte, dann mit
    (L.L.door_0) 0.01 <
    (L.L.door_1) 0.01 < &&
    (L.L.door_2) 0.01 < &&
    (L.L.door_3) 0.01 < &&
    (L.L.bremse_halte) ! &&


    @omsifan4740: Bei der ersten Variablenabfrage kommt kein && hin. Man kann auch die Undabfrage am Ende setzen, wenn es weniger als 7 Abfragen sind.
    (L.L.door_0) 0.01 <
    (L.L.door_1) 0.01 <
    (L.L.door_2) 0.01 <
    (L.L.door_3) 0.01 <
    (L.L.bremse_halte) ! && && && &&


    Gibt auch andere Möglichkeiten das Script zu schreiben, aber ich beziehe mich hier nur auf den Vorschlag von Omsifan. Muß ja nicht sinnlos kompliziert werden.

  • Im init block:


    Code
    1. 1 (S.L.sound_played)


    im Frame block:


    Code
    1. (L.L.door_0) !
    2. (L.L.door_1) ! &&
    3. (L.L.door_3) ! &&
    4. (L.L.bremse_halte) ! &&
    5. {if}
    6. (M.L.sound)
    7. {else}
    8. 0 (S.L.sound_played)
    9. {endif}


    das Macro für den Sound:


    In diesem habe ich ein Timegap eingebaut, damit der Sound nicht mit der Haltestellenbremse ausgelöst wird, sondern etwas später. Als "ev_IBIS_piep" kannst du deinen Soundtrigger einsetzen.


    das muss dann noch in die passende Varlist:


    Code
    1. sound_played
    2. sound_delay
  • Ja Scripten möchte ich auch noch können. *träum*

    :rolleyes:


    Ein sehr interessantes Thema.

  • Du hast Trigger als Bedingung geprüft. Trigger sind die Befehlabfolgen, die ausgeführt werden, wenn ein Trigger gedrückt wurde.
    Wenn es bei einer Bedingung kein "andernfalls" gibt, dann schreibt man einfach garnichts.


    Aber soweit Ich das verstanden habe, interessiert OMSI das doch nicht, soweit man 'es so schreiben würde. Also mit dem ,, ' ,, schreibt?
    Frage an Tatra:

    Beim ersten steht eine eckige Klammer. Muss das so sein, oder hast du dich verschrieben?



    Danke für alle Antworten...


    ole_2805