Einstiegsverhalten und Türsteuerung beim Citaro G

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.
  • Guten Morgen

    :)


    da ich weder im nachschauen der diversen Citaro-Themen was vergleichbares gefunden hab noch im entsprechenden Thema selbst, mach ich mal meinen Wunsch öffentlich:

    • die hintere im 3-Türer Solo automatisch während die mittlere Manuell bedient wird;
    • Automatische Haltestellenbremse bei der man nicht schon vor dem Stillstand die Türen öffnen kann (sodass man NUM- an Ampeln einsetzen kann, wofür der Schalter ja eigentlich gedacht ist);
    • Ein- und Ausstieg bei Solo und Gelenkzug an allen Türen (mit entsprechenden Pfaden und Türöffner außen).


    Hatte zwar in den letzten Tagen (mit Hilfe von ACMC, hierfür nochmal ein fettes DANKE) einiges rumprobiert, aber nichts konnte Vollends überzeugen. Entweder standen die vor geschlossener Türe und schauten dumm, ein anderes mal standen die vor offener und rührten sich keinen Millimeter, bei einem weiteren mal stiegen die zwar selbstständig an der letzten Türe ein aber nicht mehr aus. Am Ende steht zwar das die an allen Türen ein- und aussteigen, diese aber von außen nicht selbstständig öffnen. Wenn zu dann rennen die nach vorn, wenn manuell geöffnet steigen die ein... Es ist einfach zum Haare raufen

    ;(


    Eine Idiotensichere step-by-step-Anleitung täte ja reichen was ich wo löschen/hinzufügen muss, oder einzelne Abschnitte um das gewünschte Ergebniss zu erzielen.


    Grüße

    :)
  • Die ersten beiden Punkte sind in Morphis Mod bereits enthalten, den würde ich sowieso generell als Ausgangspunkt nehmen (die Standard-Konfiguration von dem Bus ist ja der letzte Mist).


    Ich versuche mal, auf die Schnelle den Einstieg an allen Türen zu erklären, habe leider nicht so viel Zeit.


    Zunächst müssen wir den Fahrgästen mal sagen, dass sie überhaupt hinten einsteigen dürfen.
    Dies geschieht in der passengercabin.cfg.


    Uns interessieren die [entry] und [exit] Einträge, die etwa so aussehen sollten:


    Entry 0 und 1 ist die Vordertür, die interessiert uns erstmal nicht.
    Exit 2 und 3 ist in diesem Beispiel (Citaro 2-Türer) die hintere Tür (jeweils ein Flügel).
    Die beiden müssen wir jetzt noch als Entry definieren, damit sich die Leute trauen, da einzusteigen.
    Zuletzt ergänzen wir noch unter jedem [entry] den Befehl {withbutton}.
    Dieser bewirkt, dass die Leute zu allen Türen laufen, und nicht nur zur Vordertür.



    Der erste Schritt ist damit getan: Die Leute "erkennen" die jeweils definierte Tür als Eingang und laufen auch dort hin.
    Einsteigen tun sie aber noch nicht, auch bei geöffneter Tür (zumindest beim Citaro).



    Damit das korrekt funktioniert, müssen wir den Leuten erklären, wann sie überhaupt aus/einsteigen dürfen, nämlich bei geöffneten Türen.
    Versteht sich eigentlich von selbst, aber unsere KI-Kollegen sind leider nicht so clever, denen müssen wir das explizit sagen.


    Im NG272 ist der richtige Code bereits von Haus aus drin:

    Code
    1. (L.L.door_0) 0.9 > (S.L.PAX_Entry0_Open)
    2. (L.L.door_1) 0.9 > (S.L.PAX_Entry1_Open)
    3. (L.L.door_2) 0.9 > (L.L.door_3) 0.9 > && (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open) (S.L.PAX_Entry2_Open) (S.L.PAX_Entry3_Open)
    4. (L.L.door_4) 0.9 > (L.L.door_5) 0.9 > && (S.L.PAX_Exit2_Open) (S.L.PAX_Exit3_Open) (S.L.PAX_Entry4_Open) (S.L.PAX_Entry5_Open)


    Ein ähnlich aussehender Abschnitt sollte auch beim Citaro existieren, dieser kann einfach überschrieben werden.


    Das war's auch im Prinzip schon, die Leute laufen jetzt zu den Türen und steigen ein, sofern sie geöffnet sind:



    Der letzte Schritt, nämlich das selbstständige Öffnen der Türen durch die Fahrgäste, ist leider nicht mehr ganz so einfach.
    Das liegt nicht zuletzt daran, dass zig verschiedene Türskripte für den Citaro in Umlauf sind.


    Grundsätzlich kann man sich da aber auch gut am NG272 orientieren:

    Code
    1. ' Außentürtaster werden von Fahrgästen benutzt:
    2. (L.L.door_freigabe) (L.L.PAX_Entry2_Req) (L.L.PAX_Entry3_Req) || &&
    3. {if}
    4. 1 (S.L.haltewunsch)
    5. {endif}


    Dieser Code löst einen Haltewunsch aus, wenn die door_freigabe Variable gesetzt ist sowie Entry2 oder Entry3 von außen angefordert werden.
    Was dann mit dem Haltewunsch gemacht wird, ist wieder eine andere Frage.
    Im BVG-Skript von Morphi dürfte dieser Codeschnipsel aber beispielsweise funktionieren.


    Vielleicht hat dich die kurze Erklärung bereits weitergebracht.
    Damit man dir konkret weiterhelfen kann, müsstest du uns einmal verraten, welches Skript du überhaupt nutzt.

    :)


    Ich empfehle, wie gesagt, Morphis Mod als Basis, wobei auch da die Skripte leider ziemlich vermurkst sind.


    Gruß,
    SchulterSack

  • Problem bei den BVG Citaros ist allerdings, das man normalerweise nicht hinten einsteigen darf.
    Vielen Fahrern ist es egal und andere setzen das durch.


    Zumal besitzen die Citaros der BVG nur für die vordere Tür einen Knopf zum Kompletten Öffnen bzw. zwei Knöpfe um nur je einen Türflügel vorne zu Öffnen, alle anderen Türen sind Automatiktüren (selbiges gilt auch für die Solaris Urbino 18 )

    Einmal editiert, zuletzt von MrEisbaer ()

  • Erstmal Danke SchulterSack bis hierhin

    :)

    So weit waren wir auch schon, in der door.osc steht:

    aber irgendwie hab ich das dumpfe Gefühl, da stimmt bei mir was nicht... Den haltewunsch_2 hab ich auch schon hinzugefügt, was in der varlist auch ergänzt wurde.


    Das ursprüngliche Script von Alterr ohne irgendwelche Mods ist der Favorit

    :)

    Allerdings ist der Einstieg hinten nachgerüstet, 2. Haltewunschschleife. Die passengercabin.cfg war das erste was ich versucht hab, aber irgendwie war das nichts, daher die rumfummelei im Script wo ich keine Ahnung hab

    :(

    In Morphys Mod stimmt zwar die Türsteuerung für den 4-Türer, aber der Einstieg hinten ist dort doch auch nicht umgesetzt?

    2 Mal editiert, zuletzt von Einsamer_Wolf86 () aus folgendem Grund: Rechtschreibfehler

  • Automatische Haltestellenbremse bei der man nicht schon vor dem Stillstand die Türen öffnen kann (sodass man NUM- an Ampeln einsetzen kann, wofür der Schalter ja eigentlich gedacht ist);


    NUM- ist eigentlich bei der Standard-Tastaturbelegung für Haltestellenbremse mit Türfreigabe gedacht. Das ist auch im Editor für die Tastenbelegung so bezeichnet und sollte man daher nicht ändern. Statt Scriptänderungen lieber die Tastaturbelegung nach deinen Wünschen anpassen - bei Morphis Mod sind beide Möglichkeiten (Hst-Bremse mit Türfreigabe und ohne Türfreigabe aka 20-h-Schalter) wie hier schon erwähnt wurde implementiert.
    Mich nervt es nämlich beim Hamburger Stadtbus bereits, dass die Haltestellenbremse ohne Türfreigabe über das Event für Haltestellenbremse mit Türfreigabe realisiert ist und auf das eigentlich dafür vorgesehene Event nicht reagiert wird. Dies führt dazu, dass ich beim G27 nicht die Taste am Lenkrad nutzen kann, sondern die Türfreigabetaste an der Schalteinheit verwenden muss. Werd mir das demnächst wohl selbst umskripten.

    Ich empfehle, wie gesagt, Morphis Mod als Basis, wobei auch da die Skripte leider ziemlich vermurkst sind.


    Es kann helfen, wenn man die Skripte erst einmal anständig formatiert. Da sind oft an if-Statements die Anweisungen nicht eingerückt oder es wurden Leerzeichen statt Tabs verwendet, worunter die Lesbarkeit doch enorm leidet, was wiederum das Verständnis der Funktionsweise erschwert.


    Zum Thema haltewunsch-Variablen hatte ich bereits per PN erwähnt, dass diese beim NL/NG in Makros abgefragt werden, die im Frame-Makro aufgerufen werden. Ist eine der Variablen gleich 1, dann wird die entsprechende Tür geöffnet. Beim Citaro wird hingegen an diesen Stellen direkt auf die Exit#_Req-Variablen reagiert. Also nur auf das Vorliegen einer Ausstiegsanforderung. Einstiegsanforderungen über die haltewunsch-Variablen bleiben daher unberücksichtigt. Man kann nun entweder die Entry#_Req-Variablen an diesen Stellen ergänzen (Verknüpfung mit ODER, also "||"), oder man strickt das gesamte Skript auf die Nutzung der haltewunsch-Variablen wie bei M&R um (was sicher schöner wäre).

  • Das ist sowieso ein Phänomen, dass die Funktionen im Cockpit vom Citaro so wenig mit dem vom NG gemein hat

    :(

    Die Türfreigabe und die Haltestellenbremse laufen beim Citaro über zwei Tasten bzw. Knöpfe, im NG sind Türfreigabe und Haltestellenbremse derselbe, also geht in der ungemoddeten Version gleichzeitig vonstatten. Im Citaro heißt des dann mit NUM- die Haltestellenbremse setzen und mit Shift-Y (wo ich die Türfreigabe drauf hab) freigeben, was an und für sich ja auch kein Problem darstellt, das ist für mich jetzt, der anderes kennt und gewohnt ist, nicht normal. In Berlin mag das zwar so sein, in den SD lass ich mir das ja noch eingehen da Berlinspezifisch, aber beim Citaro laufen halt mal eben 40.000 Wagen in der halben Welt, und nur wenige haben die Berliner Steuerung

    :)


    Die Haltestellenbremse als solches kenn ich nur als Hilfe an Ampeln oder im Stau um den Fuß zu entlasten, die brauchen wir hier nicht zur Türfreigabe (bei den neuen muss man nur noch das Bremspedal bis zu einem gewissen punkt treten und die rastet automatisch ein), die Türfreigabe aktiviert die bei Stillstand automatisch (oder auch schonmal bei 2Km/h, was von Fabrikat zu Fabrikat unterschiedlich ist und u.U. mit einem unsanften Ruck belohnt wird). Zum lösen braucht man nur kurz aufs Gas tippen, die löst und dann kann man drauflatschen

    :D
  • Mor

    Das ist sowieso ein Phänomen, dass die Funktionen im Cockpit vom Citaro so wenig mit dem vom NG gemein hat

    :(

    Die Türfreigabe und die Haltestellenbremse laufen beim Citaro über zwei Tasten bzw. Knöpfe, im NG sind Türfreigabe und Haltestellenbremse derselbe, also geht in der ungemoddeten Version gleichzeitig vonstatten. Im Citaro heißt des dann mit NUM- die Haltestellenbremse setzen und mit Shift-Y (wo ich die Türfreigabe drauf hab) freigeben, was an und für sich ja auch kein Problem darstellt, das ist für mich jetzt, der anderes kennt und gewohnt ist, nicht normal. In Berlin mag das zwar so sein, in den SD lass ich mir das ja noch eingehen da Berlinspezifisch, aber beim Citaro laufen halt mal eben 40.000 Wagen in der halben Welt, und nur wenige haben die Berliner Steuerung

    :)


    Die Haltestellenbremse als solches kenn ich nur als Hilfe an Ampeln oder im Stau um den Fuß zu entlasten, die brauchen wir hier nicht zur Türfreigabe (bei den neuen muss man nur noch das Bremspedal bis zu einem gewissen punkt treten und die rastet automatisch ein), die Türfreigabe aktiviert die bei Stillstand automatisch (oder auch schonmal bei 2Km/h, was von Fabrikat zu Fabrikat unterschiedlich ist und u.U. mit einem unsanften Ruck belohnt wird). Zum lösen braucht man nur kurz aufs Gas tippen, die löst und dann kann man drauflatschen

    :D

    Morphi hat die BVG Tuersteuerung in seinem Mod inkorrekt umgesetzt.

  • Die ersten beiden Punkte sind in Morphis Mod bereits enthalten, den würde ich sowieso generell als Ausgangspunkt nehmen (die Standard-Konfiguration von dem Bus ist ja der letzte Mist).


    Ich versuche mal, auf die Schnelle den Einstieg an allen Türen zu erklären, habe leider nicht so viel Zeit.


    Zunächst müssen wir den Fahrgästen mal sagen, dass sie überhaupt hinten einsteigen dürfen.
    Dies geschieht in der passengercabin.cfg.


    Uns interessieren die [entry] und [exit] Einträge, die etwa so aussehen sollten:



    [entry]
    0


    [entry]
    1


    {noticketsale}


    [exit]
    2


    [exit]
    3


    Entry 0 und 1 ist die Vordertür, die interessiert uns erstmal nicht.
    Exit 2 und 3 ist in diesem Beispiel (Citaro 2-Türer) die hintere Tür (jeweils ein Flügel).
    Die beiden müssen wir jetzt noch als Entry definieren, damit sich die Leute trauen, da einzusteigen.
    Zuletzt ergänzen wir noch unter jedem [entry] den Befehl {withbutton}.
    Dieser bewirkt, dass die Leute zu allen Türen laufen, und nicht nur zur Vordertür.



    [entry]
    0


    {withbutton}


    [entry]
    1


    {noticketsale}
    {withbutton}


    [exit]
    2


    [exit]
    3


    [entry]
    2


    {withbutton}


    [entry]
    3


    {withbutton}


    Der erste Schritt ist damit getan: Die Leute "erkennen" die jeweils definierte Tür als Eingang und laufen auch dort hin.
    Einsteigen tun sie aber noch nicht, auch bei geöffneter Tür (zumindest beim Citaro).


    Damit das korrekt funktioniert, müssen wir den Leuten erklären, wann sie überhaupt aus/einsteigen dürfen, nämlich bei geöffneten Türen.
    Versteht sich eigentlich von selbst, aber unsere KI-Kollegen sind leider nicht so clever, denen müssen wir das explizit sagen.


    Im NG272 ist der richtige Code bereits von Haus aus drin:



    (L.L.door_0) 0.9 > (S.L.PAX_Entry0_Open)
    (L.L.door_1) 0.9 > (S.L.PAX_Entry1_Open)
    (L.L.door_2) 0.9 > (L.L.door_3) 0.9 > && (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open) (S.L.PAX_Entry2_Open) (S.L.PAX_Entry3_Open)
    (L.L.door_4) 0.9 > (L.L.door_5) 0.9 > && (S.L.PAX_Exit2_Open) (S.L.PAX_Exit3_Open) (S.L.PAX_Entry4_Open) (S.L.PAX_Entry5_Open)


    Ein ähnlich aussehender Abschnitt sollte auch beim Citaro existieren, dieser kann einfach überschrieben werden.


    Das war's auch im Prinzip schon, die Leute laufen jetzt zu den Türen und steigen ein, sofern sie geöffnet sind:


    Der letzte Schritt, nämlich das selbstständige Öffnen der Türen durch die Fahrgäste, ist leider nicht mehr ganz so einfach.
    Das liegt nicht zuletzt daran, dass zig verschiedene Türskripte für den Citaro in Umlauf sind.


    Grundsätzlich kann man sich da aber auch gut am NG272 orientieren:



    ' Außentürtaster werden von Fahrgästen benutzt:


    (L.L.door_freigabe) (L.L.PAX_Entry2_Req) (L.L.PAX_Entry3_Req)

    ||

    &&
    {if}
    1 (S.L.haltewunsch)
    {endif}


    Dieser Code löst einen Haltewunsch aus, wenn die door_freigabe Variable gesetzt ist sowie Entry2 oder Entry3 von außen angefordert werden.
    Was dann mit dem Haltewunsch gemacht wird, ist wieder eine andere Frage.
    Im BVG-Skript von Morphi dürfte dieser Codeschnipsel aber beispielsweise funktionieren.


    Vielleicht hat dich die kurze Erklärung bereits weitergebracht.
    Damit man dir konkret weiterhelfen kann, müsstest du uns einmal verraten, welches Skript du überhaupt nutzt.
    Ich empfehle, wie gesagt, Morphis Mod als Basis, wobei auch da die Skripte leider ziemlich vermurkst sind.


    Gruß,
    SchulterSack




    Wo finde ich den bitte das mit den Quellcode (L.door ...... usw !?
    In der Passengercabain.cfg vom O530G nicht !

  • Jap

    :P


    Ich versuche die aber nur vorne an den ersten 2 Türen einsteigen zu lassen , also nicht im Gelenk hinten !

  • Hab alles so gemacht wie es oben steht und trotzdem steigen die Leute nicht ein !
    Sie stehen nur vor offener Tür

    :/
  • Ich hab ein Problem: Die Leute stehen zwar an der Hecktür, aber sie trauen sich nicht ins Auto. In der door.osc hab ich folgendes(Auszug):



    Hab ich das richtig gemacht? (Falls die Zahlen bei (L.L.door-X)nicht stimmen, auch da ha ich schon probiert). Oder muss ich das anders eintragen?


    Und noch etwas: Da das wahrscheinlich nicht auf die Morphi V3 abgestimmt ist: Geht es, dass die Fahrgäste die Türflügelsperre richtig erkennen? Sie wollen nämlich nur am ganz ersten Flügel zusteigen...


    Wär nett wenn jemand etwas weiß...


    Grüße,
    strb

  • Der Entry 1 ist bei dir sicher an der vordersten Tür, aber du setzt in in dem Frame-Makro auf "geöffnet", wenn (L.L.door_3) > 0.9 ist. Da sollte (L.L.door_1) stehen.
    Bei dem Eintrag darunter müsste es sich eigentlich um door_2 und door_3 statt door_5 und door_3 handeln, noch eine Zeile tiefer dann door_4 und door_5. Wobei jeweils eine door-Variable reichen sollte, also z.B. bei der hinteren Tür die 4 und bei der mittleren Tür die 2, oder du betrachtest gleich alle Flügel separat (wie an der vordersten Tür beim Fahrer z.B. wegen der Türflügelsperre nötig).


    So wie es aktuell ist, müsste der (von außen gesehen) linke Flügel der zweiten Türe offen sein, damit die Leute bei der vordersten Türe durch den linken Flügel (Entry 1) einsteigen. Für den Ein- und Ausstieg an der mittleren Türe muss wegen dem &&-Operator zusätzlich die hintere Türe offen sein. Für die an der hinteren Türe muss auch noch die beim Dreitürer nicht vorhandene Tür 4 offen sein. Das kann so natürlich nicht funktionieren.

  • Ok, danke erstmal. Die Zahlen hab ich dort deshalb geänder, weil das originale(im Post von SchulterSack) nicht geklappt hat und im originalen Script auch andere Zahlen waren. Ich werde das wieder versuchen. Muss ich da eigentlich etwas rausnehmen, wenn ich das für den 2-Türer mache? Weil Du jetzt vom 3-Türer gesprochen hast...

  • Nein, sofern die zugehörige .bus-Datei die gleiche Varlist einbindet und die Variablen somit alle gleich vorhanden sind, gibt das keine Probleme. Der originale Citaro nutzt ja auch ein Script für alle Varianten.