Hallo,
gerne möchte ich das im O530g die Leute nur an Tür 2 einsteigen. Allerdings warten Sie immer bis tür 1 auch offen ist um an tür 2 einzusteigen.
Situation Tür 2 ist geöffnet allerdings steigt keiner ein
Tür 1 und 2 sind geöffnet Leute steigen an Tür 2 ein
[passpos] erstellt neue Passenger-Position
x
y
z x,y,z-Koordinaten des Attachpunktes "Arsch" bzw. "Fuß"
h Sitzhöhe über Boden (0 = Stehplatz)
rot Drehung um z-Achse (Grad, 0 = Fahrtrichtung)
[drivpos] erstellt eine neue Fahrer-Position
x
y
z x,y,z-Koordinaten des Attachpunktes "Arsch" bzw. "Fuß"
h Sitzhöhe über Boden (0 = Stehplatz)
rot Drehung um z-Achse (Grad, 0 = Fahrtrichtung)
[entry] definiert Eingang
num Nr. des Pathpoints, welcher Eingang sein soll. Es können
mittels mehrerer [Entry]-Befehle mehrere Eingänge definiert
werden.
[exit]
num analog für Ausgang
[stamper] definiert, an welchem Pfadpunkt ein Entwerter angebracht ist
num Nr. des Pathpoints
x
y
z Position des Entwerterschlitzes oder des Punktes, wohin die Fahrkarte geführt werden soll
[ticket_sale]
num Pfadpunkt
x Position der Ticketausgabe
y
z
[ticket_sale_money_point]
pos_x Position der Geldabgabe
pos_y
pos_z
var_x Variation der Koordinaten
var_y
[ticket_sale_change_point]
pos_x Position der Geldrückgabe
pos_y
pos_z
var_x Variation der Koordinaten
var_y
###################################
[entry]
2
{noticketsale}
[entry]
3
{noticketsale}
[exit]
2
[exit]
3
[linkToPrevVeh]
24
###################################
[ticket_sale]
5
0.13
5.32
1.48
[ticket_sale_money_point_2]
-0.102
5.027
1.310
0.05
0.05
zahltisch
[ticket_sale_change_point_2]
-0.202
4.830
1.124
0.05
0.05
zahltisch
###################################
Fahrersitz:
[drivpos]
-0.73
4.8
1.1
0.4
0
###################################
Sitze
[passpos]
-0.93
2.59
0.88
0.41
180
[illumination_interior]
0
1
2
3
[passpos]
-0.49
2.59
0.88
0.41
180
[illumination_interior]
0
1
2
3
[passpos]
0.49
2.59
0.88
0.41
180
[illumination_interior]
0
1
2
3
[passpos]
0.93
2.59
0.88
0.41
180
[illumination_interior]
0
1
2
3
[passpos]
-0.93
1.55
0.88
0.41
0
[illumination_interior]
0
1
2
3
[passpos]
-0.49
1.55
0.88
0.41
0
[illumination_interior]
0
1
2
3
[passpos]
0.49
1.55
0.88
0.41
0
[illumination_interior]
0
1
2
3
[passpos]
0.93
1.55
0.88
0.41
0
[illumination_interior]
0
1
2
3
[passpos]
-0.93
0.825
0.88
0.41
0
[illumination_interior]
0
1
2
3
[passpos]
-0.49
0.825
0.88
0.41
0
[illumination_interior]
0
1
2
3
[passpos]
0.49
0.825
0.88
0.41
0
[illumination_interior]
0
1
2
3
[passpos]
0.93
0.825
0.88
0.41
0
[illumination_interior]
0
1
2
3
[passpos]
0.49
0.115
0.88
0.41
0
[illumination_interior]
0
1
2
3
[passpos]
0.93
0.115
0.88
0.41
0
[illumination_interior]
0
1
2
3
*****
[passpos]
0.49
-2.24
1.25
0.41
0
[illumination_interior]
1
2
3
4
[passpos]
0.93
-2.24
1.25
0.41
0
[illumination_interior]
1
2
3
4
[passpos]
-0.49
-2.24
1.25
0.41
0
[illumination_interior]
1
2
3
4
[passpos]
-0.93
-2.24
1.25
0.41
0
[illumination_interior]
1
2
3
4
*****
[passpos]
0.49
-2.99
1.25
0.41
180
[illumination_interior]
1
2
3
4
[passpos]
0.93
-2.99
1.25
0.41
180
[illumination_interior]
1
2
3
4
[passpos]
-0.49
-2.99
1.25
0.41
180
[illumination_interior]
1
2
3
4
[passpos]
-0.93
-2.99
1.25
0.41
180
[illumination_interior]
1
2
3
4
**************************************
*****
[passpos]
-0.1
1.75
0.44
0
80
[illumination_interior]
0
1
2
3
[passpos]
-0.1
1.25
0.44
0
100
[illumination_interior]
0
1
2
3
[passpos]
-0.1
0.75
0.44
0
60
[illumination_interior]
0
1
2
3
[passpos]
-0.1
0.25
0.44
0
20
[illumination_interior]
0
1
2
3
*****
[passpos]
-0.8
0
0.44
0
40
[illumination_interior]
0
1
2
3
[passpos]
-0.8
-0.5
0.44
0
30
[illumination_interior]
0
1
2
3
[passpos]
-0.8
-1
0.44
0
160
[illumination_interior]
0
1
2
3
*****
[passpos]
-0.3
0
0.44
0
100
[illumination_interior]
0
1
2
3
[passpos]
-0.3
-0.5
0.44
0
120
[illumination_interior]
0
1
2
3
[passpos]
-0.3
-1
0.44
0
80
[illumination_interior]
0
1
2
3
[passpos]
-0.1
0
0.44
0
60
[illumination_interior]
0
1
2
3
[passpos]
0.2
-0.5
0.44
0
30
[illumination_interior]
0
1
2
3
[passpos]
0.2
-1
0.44
0
80
[illumination_interior]
0
1
2
3
[passpos]
0.2
0
0.44
0
100
[illumination_interior]
0
1
2
3
*****
[passpos]
0
-2
0.453
0
40
[illumination_interior]
0
1
2
3
[passpos]
0
-2.5
0.475
0
120
[illumination_interior]
0
1
2
3
[passpos]
0
-3
0.488
0
60
[illumination_interior]
0
1
2
3
[passpos]
0
-3.5
0.5
0
165
[illumination_interior]
0
1
2
3
[passpos]
-.5
-4
0.5
0
40
[illumination_interior]
0
1
2
3
[passpos]
-.5
-4.5
0.5
0
60
[illumination_interior]
0
1
2
3
[passpos]
-.5
-5
0.5
0
140
[illumination_interior]
0
1
2
3
[passpos]
0.5
-4
0.5
0
200
[illumination_interior]
0
1
2
3
[passpos]
0.5
-4.5
0.5
0
85
[illumination_interior]
0
1
2
3
[passpos]
0.5
-5
0.5
0
40
[illumination_interior]
0
1
2
3
'##############
'Door Script
'##############
'Controls Doors
'(c) 2007-2009 Rüdiger Hülsmann
'(c) 2007-2009 Marcel Kuhnt
'Script Version: 1.1
'Omsi release: 1.0
'Needs:
'- elec
'Revision History:
'- Marcel Kuhnt 13.06.2009 Batterietrennschalter => elec_busbar_main
'- Marcel Kuhnt 21.06.2009 AI-Unterstützung hinzugefügt
'- Rüdiger Hülsmann 24.10.2009 Ansteuerung des Kinderwagenwunsches modifiziert
'- Rüdiger Hülsmann 19.12.2009 Timer für Ausstiegstür jetzt Timegap-basiert, Bugfix: Tür schließt jetzt nur bei elec_busbar=1
'- RÜdiger Hülsmann 22.09.2010 Door light trigger value set to 0.1
'- RÜdiger Hülsmann 07.11.2010 Door speed based on reservoir pressure, air-operated doors made an option
'- Marcel Kuhnt 08.11.2010 AI procedure closing doors debugged
'- Rüdiger Hülsmann 21.11.2010 Front doors only operable when busbar on
'- Rüdiger Hülsmann 23.12.2010 External front door operation included, option: doors only operable with actual stop brake
'- Rüdiger Hülsmann 31.12.2010 Electric door function debugged
'- Rüdiger Hülsmann 05.01.2011 20h-switch
'- Rüdiger Hülsmann 07.01.2011 Backdoor manual switch sound debugged, 20h switch depending on bus type
'- Rüdiger Hülsmann 19.01.2011 Electric door support
'- Rüdiger Hülsmann 19.01.2011 Electric door support
'- Morozov Maxim ---------- Removed automatical back door. Added ramp animation... etc...
'- Alexey Vasiliev 09.03.2012 Added more doors for Citaro "Private Edition"
'- Ñåðãåé Wizard 14.11.2013 Added automatical back doors. Rework dooraft for citaro 3door
'--------------------------------------------------------------------------------
{trigger:cp_door_01_nothahn}
(L.L.door_01_nothahn_sw) ! (S.L.door_01_nothahn_sw)
(L.L.door_01_nothahn_sw)
{if}
(T.L.ev_nothahn01_auf)
1 (S.L.doorTarget_0) (S.L.doorTarget_1)
5 random 10 / 0.5 + (S.L.door_0_soll)
5 random 10 / 0.5 + (S.L.door_1_soll)
{else}
(T.L.ev_nothahn01_zu)
{endif}
{end}
{trigger:cp_door_23_nothahn}
(L.L.door_23_nothahn_sw) ! (S.L.door_23_nothahn_sw)
(L.L.door_23_nothahn_sw)
{if}
(T.L.ev_nothahn23_auf)
1 (S.L.doorTarget_23) (S.L.bremse_halte)
5 random 10 / 0.5 + (S.L.door_2_soll)
5 random 10 / 0.5 + (S.L.door_3_soll)
{else}
(T.L.ev_nothahn23_zu)
{endif}
{end}
{trigger:door0_drag}
(L.S.mouse_x) -400 / (L.L.doorDragAcc_0) + 1 min 0 max (S.L.doorDragAcc_0)
{end}
{trigger:door1_drag}
(L.S.mouse_x) -400 / (L.L.doorDragAcc_1) + 1 min 0 max (S.L.doorDragAcc_1)
{end}
{trigger:door2_drag}
(L.S.mouse_x) -400 / (L.L.doorDragAcc_2) + 1 min 0 max (S.L.doorDragAcc_2)
{end}
{trigger:door3_drag}
(L.S.mouse_x) -400 / (L.L.doorDragAcc_3) + 1 min 0 max (S.L.doorDragAcc_3)
{end}
{trigger:door4_drag}
(L.S.mouse_x) -400 / (L.L.doorDragAcc_4) + 1 min 0 max (S.L.doorDragAcc_4)
{end}
{trigger:door5_drag}
(L.S.mouse_x) -400 / (L.L.doorDragAcc_5) + 1 min 0 max (S.L.doorDragAcc_5)
{end}
{trigger:cp_door_45_nothahn}
(L.L.door_45_nothahn_sw) ! (S.L.door_45_nothahn_sw)
(L.L.door_45_nothahn_sw)
{if}
(T.L.ev_nothahn45_auf)
1 (S.L.doorTarget_45) (S.L.bremse_halte)
5 random 10 / 0.5 + (S.L.door_4_soll)
5 random 10 / 0.5 + (S.L.door_5_soll)
{else}
(T.L.ev_nothahn45_zu)
{endif}
{end}
{trigger:bus_doorfront0}
(L.L.Door_Error_Count) 1 + (S.L.Door_Error_Count)
1 (S.L.cockpit_tuertaster1)
(T.L.ev_tuertaster_ein)
{end}
{trigger:bus_doorfront0_off}
0 (S.L.cockpit_tuertaster1)
(T.L.ev_tuertaster_aus)
{end}
{trigger:bus_doorfront1}
(L.L.Door2_Error_Count) 1 + (S.L.Door2_Error_Count)
1 (S.L.cockpit_tuertaster2)
(T.L.ev_tuertaster_ein)
{end}
{trigger:bus_doorfront1_off}
0 (S.L.cockpit_tuertaster2)
(T.L.ev_tuertaster_aus)
{end}
{trigger:bus_dooraft}
(L.L.bus_dooraft_sw) ! (S.L.bus_dooraft_sw)
(L.L.bus_dooraft_sw)
{if}
(T.L.ev_VDV_on)
{else}
(T.L.ev_VDV_off)
{endif}
{end}
{trigger:bus_20h-switch}
(L.L.bremse_halte_sw) ! (S.L.bremse_halte_sw)
(L.L.bremse_halte_sw) 1 =
{if}
(T.L.ev_VDV_on)
{else}
(T.L.ev_VDV_off)
{endif}
{end}
{trigger:int_haltewunsch}
1 (S.L.haltewunsch)
{end}
{trigger:door_haltewunsch}
1 (S.L.haltewunsch) (S.L.door_haltewunsch_knopfdruck)
{end}
{trigger:door_haltewunsch_off}
0 (S.L.door_haltewunsch_knopfdruck)
{end}
{trigger:cp_schalter_kinderwagen}
(L.L.door_handsteuerung) ! (S.L.door_handsteuerung)
{if}
0 (S.L.door_kinderwagenwunsch)
(T.L.ev_kippschalter_ein)
{else}
(T.L.ev_kippschalter_aus)
{endif}
{end}
{trigger:door_kinderwagenwunsch}
1 (S.L.door_kinderwagenwunsch)
{end}
{macro:Door_Init}
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_0)
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_1)
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_2)
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_3)
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_4)
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_5)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_0_norm)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_1_norm)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_2_norm)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_3_norm)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_4_norm)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_5_norm)
(C.L.door_refl) (S.L.doorRefl_0)
(C.L.door_refl) (S.L.doorRefl_1)
(C.L.door_refl) (S.L.doorRefl_2)
(C.L.door_refl) (S.L.doorRefl_3)
(C.L.door_refl) (S.L.doorRefl_4)
(C.L.door_refl) (S.L.doorRefl_5)
(C.L.tuerverzoegerung) (S.L.doortimer23) (S.L.doortimer45) (S.L.doortimer67)
1 (S.L.cockpit_tuertaster4)
{end}
{macro:Door_Frame}
(M.L.Door0_Calc)
(M.L.Door1_Calc)
(M.L.DoorAftCalc)
(M.L.Door2_Calc)
(M.L.Door3_Calc)
(M.L.Door4_Calc)
(M.L.Door5_Calc)
(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)
(L.L.door_6) 0.9 > (L.L.door_7) 0.9 > && (S.L.PAX_Exit4_Open) (S.L.PAX_Exit5_Open) (S.L.PAX_Entry6_Open) (S.L.PAX_Entry7_Open)
' Nothahn-Rebelüftung
(L.L.door_01_nothahn_sw)
{if}
1 (S.L.door_01_nothahn)
{endif}
(L.L.door_01_nothahn)
(L.L.door_01_nothahn_sw) ! &&
{if}
(L.L.door_0_soll) s0
(L.L.doorDragAcc_0) s1
1 s2
1 s3
(M.L.door_traegheit)
(S.L.doorDragAcc_0)
(L.L.door_1_soll) s0
(L.L.doorDragAcc_1) s1
1 s2
1 s3
(M.L.door_traegheit)
(S.L.doorDragAcc_1)
(L.L.cockpit_tuertaster1)
{if}
0 (S.L.door_01_nothahn) (S.L.doorTarget_0) (S.L.doorTarget_1)
(L.L.door_0) 0.5 >
(L.L.door_1) 0.5 >
{if}
(T.L.ev_doortriggerclose_0)
(T.L.ev_doortriggerclose_1)
{endif}
{endif}
{endif}
(L.L.door_23_nothahn_sw)
{if}
1 (S.L.door_23_nothahn)
{endif}
(L.L.door_23_nothahn)
(L.L.door_23_nothahn_sw) ! &&
{if}
(L.L.door_2_soll) s0
(L.L.doorDragAcc_2) s1
1 s2
1 s3
(M.L.door_traegheit)
(S.L.doorDragAcc_2)
(L.L.door_3_soll) s0
(L.L.doorDragAcc_3) s1
1 s2
1 s3
(M.L.door_traegheit)
(S.L.doorDragAcc_3)
(L.L.cockpit_tuertaster2)
{if}
0 (S.L.door_23_nothahn) (S.L.doorTarget_23)
(L.L.door_2) 0.5 >
{if}
(T.L.ev_doortriggerclose_2)
{endif}
{endif}
{endif}
(L.L.door_45_nothahn_sw)
{if}
1 (S.L.door_45_nothahn)
{endif}
(L.L.door_45_nothahn)
(L.L.door_45_nothahn_sw) ! &&
{if}
(L.L.door_4_soll) s0
(L.L.doorDragAcc_4) s1
1 s2
1 s3
(M.L.door_traegheit)
(S.L.doorDragAcc_4)
(L.L.door_5_soll) s0
(L.L.doorDragAcc_5) s1
1 s2
1 s3
(M.L.door_traegheit)
(S.L.doorDragAcc_5)
(L.L.doorAftLastOpen1) (C.L.doorAftOpenTime) >
{if}
0 (S.L.door_45_nothahn) (S.L.doorTarget_45)
{endif}
{endif}
(C.L.HST_Bremse_aktiv)
{if}
(L.L.door_0) 0 =
(L.L.door_1) 0 = &&
{if}
1 (S.L.Freigabe)
{else}
0 (S.L.Freigabe)
{endif}
{else}
1 (S.L.Freigabe)
{endif}
' Türsteuerung:
'Tür 1
(L.L.cockpit_tuertaster1)
(L.L.AI_Scheduled_AtStation) 1 =
(L.L.door_0) 0.5 < &&
(L.L.door_1) 0.5 < &&
(L.L.doorTarget_0) 0 = (L.L.doorTarget_1) 0 = && &&
(L.L.velocity) (C.L.tueroeffnung) < &&
(C.L.Tuerfehlertoleranz) (L.L.wearlifespan) * (L.L.Door_Error_Count) > &&
(L.L.elec_busbar_main) &&
(L.L.bremse_p_tank04) 550000 > &&
(L.L.door_01_nothahn_sw) ! &&
{if}
(L.L.tuersperre) 0 =
{if}
1 (S.L.doorTarget_0) (S.L.doorTarget_1)
(T.L.ev_doortriggeropen_0)
(T.L.ev_doortriggeropen_1)
{endif}
(L.L.tuersperre) 0 <
{if}
1 (S.L.doorTarget_1)
(T.L.ev_doortriggeropen_1)
{endif}
(L.L.tuersperre) 0 >
{if}
1 (S.L.doorTarget_0)
(T.L.ev_doortriggeropen_0)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{endif}
(L.L.cockpit_tuertaster1)
(L.L.AI_Scheduled_AtStation) -1 =
(L.L.door_0) 0.5 >
(L.L.door_1) 0.5 > &&
(L.L.doorTarget_0) 1 = (L.L.doorTarget_1) 1 = &&
(L.L.velocity) (C.L.tueroeffnung) < &&
(C.L.Tuerfehlertoleranz) (L.L.wearlifespan) * (L.L.Door_Error_Count) > &&
(L.L.elec_busbar_main) &&
(L.L.bremse_p_tank04) 550000 > &&
{if}
(L.L.tuersperre) 0 =
{if}
0 (S.L.doorTarget_0) (S.L.doorTarget_1)
(T.L.ev_doortriggerclose_0)
(T.L.ev_doortriggerclose_1)
{endif}
(L.L.tuersperre) 0 <
{if}
0 (S.L.doorTarget_1)
(T.L.ev_doortriggerclose_1)
{endif}
(L.L.tuersperre) 0 >
{if}
0 (S.L.doorTarget_0)
(T.L.ev_doortriggerclose_0)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{endif}
'Tür 2
(L.L.cockpit_tuertaster2)
(L.L.AI_Scheduled_AtStation) 1 =
(L.L.door_2) 0.5 < &&
(L.L.door_3) 0.5 < &&
(L.L.doorTarget_23_delayed) 0 = &&
(L.L.velocity) (C.L.tueroeffnung) < &&
(C.L.Tuerfehlertoleranz) (L.L.wearlifespan) * (L.L.Door2_Error_Count) > &&
(L.L.elec_busbar_main) &&
(L.L.pandus_opn) ! &&
(L.L.bremse_p_tank04) 550000 > &&
(L.L.door_23_nothahn_sw) ! &&
{if}
1 (S.L.doorTarget_23_delayed)
(T.L.ev_doortriggeropen_2)
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{endif}
(L.L.cockpit_tuertaster2)
(L.L.AI_Scheduled_AtStation) -1 =
(L.L.door_2) 0.5 >
(L.L.door_3) 0.5 > &&
(L.L.doorTarget_23_delayed) 1 = &&
(L.L.velocity) (C.L.tueroeffnung) < &&
(C.L.Tuerfehlertoleranz) (L.L.wearlifespan) * (L.L.Door2_Error_Count) > &&
(L.L.elec_busbar_main) &&
(L.L.pandus_opn) ! &&
(L.L.bremse_p_tank04) 550000 > &&
{if}
0 (S.L.doorTarget_23_delayed)
(C.L.tuerverzoegerung) 0 >
(L.L.door_2) 1 = &&
(L.L.door_3) 1 = &&
{if}
(T.L.ev_doorwarn)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{endif}
(L.L.doorTarget_23_delayed) !
{if}
(L.L.door_2) 1 =
(L.L.door_3) 1 =
{if}
(L.L.doortimer23) (L.S.Timegap) + (C.L.tuerverzoegerung) min (S.L.doortimer23)
(C.L.tuerverzoegerung) =
{if}
0 (S.L.doorTarget_23)
{endif}
{else}
0 (S.L.doorTarget_23)
{endif}
{else}
1 (S.L.doorTarget_23)
0 (S.L.doortimer23)
{endif}
' Lichtschranke wird per Zufall Blockiert durch Dreck oder ist gestört
(L.L.lichtschranke_gestoert) 4 =
(L.L.doorTarget_45) ! &&
(L.L.door_4) 0.2 < &&
{if}
1 (S.L.lichtschranke_befehl)
{else}
0 (S.L.lichtschranke_befehl)
{endif}
' "Dauerfeuer"-Haltewunsch über Kinderwagenschalter (macht genau dasselbe wie der "trigger:int_haltewunsch"):
(L.L.door_handsteuerung) (L.L.door_haltewunsch_knopfdruck)
{if}
1 (S.L.haltewunsch)
{endif}
' Setzen der Haltestellenbremse erst bei Stillstand des Busses:
(L.L.bremse_halte_sw) (L.L.bus_dooraft_sw) (L.L.door_20h_sw)
(C.L.auto_HST_bremse) (L.L.velocity) 0.1 < && (L.L.brake) 0.1 > && (L.L.antrieb_gear_engaged_timer) (C.L.antrieb_gear_engaged_mintime) >= &&
(L.L.freigabe) 0 = (L.L.door_2) 0 > (L.L.door_3) 0 > (L.L.door_4) 0 > (L.L.door_5) 0 > (L.L.door_6) 0 > (L.L.door_7) 0 >
(L.L.bremse_halte) ! (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) < && &&
(L.L.door_hstbremse_knickschutz)
(L.L.bsb_Error_Count) (C.L.fehlertoleranz) (L.L.wearlifespan) * > ! &&
{if}
(L.L.elec_busbar_main)
{if}
(T.L.ev_haltebremse_an)
1 (S.L.bremse_halte)
(L.L.bsb_Error_Count) 1 + (S.L.bsb_Error_Count)
{endif}
{else}
(L.L.elec_busbar_main) !
{if}
(L.L.bremse_halte)
{if}
(T.L.ev_haltebremse_aus)
0 (S.L.bremse_halte)
{endif}
{endif}
{endif}
(M.L.DoorAft_Open)
' Türfreigabekriterium
(L.L.bremse_halte_sw) (L.L.bremse_halte) && (S.L.door_freigabe)
' Haltewunschlampe:
(L.L.haltewunsch) (L.L.door_2) 0.2 < (L.L.door_5) 0.2 < (L.L.elec_busbar_main) && && &&
{if}
1 (S.L.haltewunschlampe)
{else}
0 (S.L.haltewunschlampe) (S.L.haltewunsch)
{endif}
' Kinderwagenwunsch:
(L.L.door_2) 0.2 > (L.L.door_5) 0.2 > (L.L.elec_busbar_main) &&
{if}
0 (S.L.door_kinderwagenwunsch) (S.L.zufall_kinderwagenwunsch)
{endif}
' Abfall des Kinderwagenwunsch-Relais bei fehlender Stromversorgung:
(L.L.elec_busbar_main) 0 =
{if}
0 (S.L.door_kinderwagenwunsch) (S.L.zufall_kinderwagenwunsch)
{endif}
' Zufälliges zusätzliches Aufleuchten des Kinderwagenwunsches bei Haltewunsch:
(L.L.haltewunsch) 1 =
(L.L.zufall_kinderwagenwunsch) 0 = &&
(L.S.Time) 72000 < (L.S.Time) 28800 > && &&
{if}
10 random (S.L.zufall_kinderwagenwunsch)
(L.L.zufall_kinderwagenwunsch) 9 >=
{if}
1 (S.L.door_kinderwagenwunsch)
{endif}
{endif}
' Beleuchtung der Einstiege
' Druckabhängige Türgeschwindigkeit
(C.L.door_druckluft)
{if}
(L.L.doorMaxSpeed_0_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_0)
(L.L.doorMaxSpeed_1_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_1)
(L.L.doorMaxSpeed_2_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_2)
(L.L.doorMaxSpeed_3_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_3)
(L.L.doorMaxSpeed_4_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_4)
(L.L.doorMaxSpeed_5_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_5)
{endif}
' Gemecker bei nicht freigegebener Tür
(L.L.door_2) 0 >
(L.L.door_3) 0 >
(L.L.door_4) 0 = &&
(L.L.door_5) 0 = &&
(L.L.PAX_Exit2_Req) (L.L.PAX_Exit3_Req) &&
{if}
(L.L.mecker_timer) (L.S.Timegap) + (S.L.mecker_timer)
(L.L.mecker_timer) 3 > (L.L.mecker_timer) 3.1 < &&
{if}
(T.L.ev_meckern)
{endif}
{else}
0 (S.L.mecker_timer)
{endif}
'----------------------
' AI-Ablauf:
(L.L.AI_Scheduled_AtStation) 1 =
(L.L.velocity) 0.5 < &&
{if}
1 (S.L.bus_dooraft_sw)
{endif}
'Haltestellenbremse erst wegnehmen, wenn alle Türen zu. Dann auch erst den Bus AI-mäßig freigeben:
(L.L.light_timer1) 1 >
(L.L.light_timer2) 1 > &&
(L.L.light_timer3) 1 > &&
(L.L.light_timer4) 1 > &&
(L.L.AI_Scheduled_AtStation) -1 = &&
{if}
0 (S.L.bremse_halte_sw) (S.L.AI_Scheduled_AtStation) (S.L.bremse_halte) (S.L.bus_dooraft_sw)
{endif}
{end}
{macro:Door0_Calc}
(L.L.door_01_nothahn) !
{if}
(C.L.electric_doors)
{if}
(L.L.doorTarget_0)
{if}
(L.L.door_0) (F.L.door_0_opn_speed) (S.L.doorMaxSpeed_0)
{else}
(L.L.door_0) (F.L.door_0_cls_speed) (S.L.doorMaxSpeed_0)
{endif}
(C.L.fdoor_acc) (S.L.doorAcc_0)
(L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > &&
{if}
l0 /-/ (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
{else}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
{endif}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{else}
(L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < (L.L.doorTarget_0) &&
{if}
l0 (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
{else}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
{endif}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{else}
0 (S.L.doorSpeed_0)
{endif}
{endif}
{else}
(L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > &&
{if}
l0 /-/ (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
{endif}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{else}
(L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < (L.L.doorTarget_0) &&
{if}
l0 (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
{endif}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{else}
0 (S.L.doorSpeed_0)
{endif}
{endif}
{endif}
(L.L.door_0) 1 >
{if}
(T.L.ev_doorhitopen_0)
1 (S.L.door_0)
(L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
{else}
(L.L.door_0) 0 <
{if}
(T.L.ev_doorhitclose_0)
0 (S.L.door_0)
(L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
{endif}
{endif}
(L.L.door_0) (S.L.doorDragAcc_0)
{else}
(L.L.doorDragAcc_0) (S.L.door_0)
{endif}
{end}
{macro:Door1_Calc}
(L.L.door_01_nothahn) !
{if}
(C.L.electric_doors)
{if}
(L.L.doorTarget_1)
{if}
(L.L.door_1) (F.L.door_1_opn_speed) (S.L.doorMaxSpeed_1)
{else}
(L.L.door_1) (F.L.door_1_cls_speed) (S.L.doorMaxSpeed_1)
{endif}
(C.L.fdoor_acc) (S.L.doorAcc_1)
(L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > &&
{if}
l0 /-/ (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
{else}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
(L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < (L.L.doorTarget_1) &&
{if}
l0 (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
{else}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
0 (S.L.doorSpeed_1)
{endif}
{endif}
{else}
(L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > &&
{if}
l0 /-/ (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
(L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < (L.L.doorTarget_1) &&
{if}
l0 (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
0 (S.L.doorSpeed_1)
{endif}
{endif}
{endif}
(L.L.door_1) 1 >
{if}
(T.L.ev_doorhitopen_1)
1 (S.L.door_1)
(L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
{else}
(L.L.door_1) 0 <
{if}
(T.L.ev_doorhitclose_1)
0 (S.L.door_1)
(L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
{endif}
{endif}
(L.L.door_1) (S.L.doorDragAcc_1)
{else}
(L.L.doorDragAcc_1) (S.L.door_1)
{endif}
{end}
{macro:DoorAftCalc}
(L.L.bremse_halte_sw) !
(L.L.bus_dooraft_sw) ! &&
(L.L.Freigabe) &&
(L.L.door_2) 0 = &&
(L.L.door_3) 0 = &&
(L.L.door_4) 0 = &&
(L.L.door_5) 0 = &&
(L.L.light_timer1) 0.5 > &&
(L.L.light_timer2) 0.5 > &&
(L.L.light_timer3) 0.5 > &&
(L.L.bremse_halte) &&
(L.L.throttle) 0.1 > &&
(L.L.kneel_timer) 0 = &&
(L.L.door_hstbremse_knickschutz) 0 = &&
{if}
0 (S.L.bremse_halte)
0 (S.L.doorAftLastOpen) (S.L.doorAftLastOpen1)
(T.L.ev_haltebremse_aus)
{endif}
{end}
'--------------------------------------------------------------------------------
'--------------------------------------------------------------------------------
{macro:DoorAft_Open}
(L.L.PAX_Exit2_Req)
(L.L.PAX_Exit3_Req)
(L.L.door_haltewunsch_knopfdruck)
(L.L.autoschalter)
(L.L.lichtschranke_befehl)
(L.L.door_45_nothahn_sw)
(L.L.bremse_p_tank04) 550000 > &&
{if}
(L.L.doorTarget_45) !
(L.L.bus_dooraft_sw) &&
(L.L.velocity) 0.1 < &&
(L.L.lichtschranke_befehl)
{if}
(C.L.lichtschrankenanfaelligkeit) random (S.L.lichtschranke_gestoert)
(T.L.ev_doortriggeropen_5)
1 (S.L.doorTarget_45)
1 (S.L.bremse_halte)
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{endif}
0 (S.L.doorAftLastOpen1)
{endif}
(L.L.elec_busbar_main)
{if}
(L.L.bremse_halte)
{if}
(L.L.doorAftLastOpen1) (L.S.Timegap) + (S.L.doorAftLastOpen1)
{endif}
(L.L.doorTarget_45)
(L.L.doorAftLastOpen1) (C.L.doorAftOpenTime) > &&
(L.L.autoschalter) 0 = &&
(L.L.bremse_p_tank04) 550000 > &&
{if}
(C.L.tuerverzoegerung) 0 >
{if}
(T.L.ev_doorwarn2)
0 (S.L.doorTarget_45)
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{else}
(T.L.ev_doortriggerclose_5)
0 (S.L.doorTarget_45)
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{endif}
{endif}
{end}
'--------------------------------------------------------------------------------
{macro:Door2_Calc}
(L.L.door_23_nothahn) !
{if}
(C.L.electric_doors)
{if}
(L.L.doorTarget_23)
{if}
(L.L.door_2) (F.L.door_2_opn_speed) (S.L.doorMaxSpeed_2)
(L.L.door_2) (F.L.door_2_opn_speed_2) (S.L.door_2f)
{else}
(L.L.door_2) (F.L.door_2_cls_speed) (S.L.doorMaxSpeed_2)
(L.L.door_2) (F.L.door_2_cls_speed_2) (S.L.door_2f)
{endif}
(C.L.bdoor_acc) (S.L.doorAcc_2)
(L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > &&
{if}
(L.L.trigger_antirepeat23) 1 + (S.L.trigger_antirepeat23)
(L.L.trigger_antirepeat23) 1 =
{if}
(T.L.ev_doortriggerclose_2)
{endif}
l0 /-/ (L.L.doorMaxSpeed_2) <
{if}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
{else}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
{endif}
(L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
{else}
0 (S.L.trigger_antirepeat23)
(L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < (L.L.doorTarget_23) &&
{if}
l0 (L.L.doorMaxSpeed_2) <
{if}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
{else}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
{endif}
(L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
{else}
0 (S.L.doorSpeed_2)
{endif}
{endif}
{else}
(L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > &&
{if}
(L.L.trigger_antirepeat23) 1 + (S.L.trigger_antirepeat23)
(L.L.trigger_antirepeat23) 1 =
{if}
(T.L.ev_doortriggerclose_2)
{endif}
l0 /-/ (L.L.doorMaxSpeed_2) <
{if}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
{endif}
(L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
{else}
0 (S.L.trigger_antirepeat23)
(L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < (L.L.doorTarget_23) &&
{if}
l0 (L.L.doorMaxSpeed_2) <
{if}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
{endif}
(L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
{else}
0 (S.L.doorSpeed_2)
{endif}
{endif}
{endif}
(L.L.door_2) 1 >
{if}
(T.L.ev_doorhitopen_2)
1 (S.L.door_2)
(L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
{else}
(L.L.door_2) 0 <
{if}
(T.L.ev_doorhitclose_2)
0 (S.L.door_2)
(L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
{endif}
{endif}
(L.L.door_2) (S.L.doorDragAcc_2)
{else}
(L.L.doorDragAcc_2) (S.L.door_2)
{endif}
{end}
{macro:Door3_Calc}
(L.L.door_23_nothahn) !
{if}
(C.L.electric_doors)
{if}
(L.L.doorTarget_23)
{if}
(L.L.door_3) (F.L.door_3_opn_speed) (S.L.doorMaxSpeed_3)
(L.L.door_3) (F.L.door_3_opn_speed_2) (S.L.door_3f)
{else}
(L.L.door_3) (F.L.door_3_cls_speed) (S.L.doorMaxSpeed_3)
(L.L.door_3) (F.L.door_3_cls_speed_2) (S.L.door_3f)
{endif}
(C.L.bdoor_acc) (S.L.doorAcc_3)
(L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > &&
{if}
l0 /-/ (L.L.doorMaxSpeed_3) <
{if}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
{else}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
{endif}
(L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
{else}
(L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < (L.L.doorTarget_23) &&
{if}
l0 (L.L.doorMaxSpeed_3) <
{if}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
{else}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
{endif}
(L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
{else}
0 (S.L.doorSpeed_3)
{endif}
{endif}
{else}
(L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > &&
{if}
l0 /-/ (L.L.doorMaxSpeed_3) <
{if}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
{endif}
(L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
{else}
(L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < (L.L.doorTarget_23) &&
{if}
l0 (L.L.doorMaxSpeed_3) <
{if}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
{endif}
(L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
{else}
0 (S.L.doorSpeed_3)
{endif}
{endif}
{endif}
(L.L.door_3) 1 >
{if}
(T.L.ev_doorhitopen_3)
1 (S.L.door_3)
(L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
{else}
(L.L.door_3) 0 <
{if}
(T.L.ev_doorhitclose_3)
0 (S.L.door_3)
(L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
{endif}
{endif}
(L.L.door_3) (S.L.doorDragAcc_3)
{else}
(L.L.doorDragAcc_3) (S.L.door_3)
{endif}
{end}
{macro:Door4_Calc}
(L.L.door_45_nothahn) !
{if}
(C.L.electric_doors)
{if}
(L.L.doorTarget_45)
{if}
(L.L.door_4) (F.L.door_4_opn_speed) (S.L.doorMaxSpeed_4)
(L.L.door_4) (F.L.door_4_opn_speed_2) (S.L.door_4f)
{else}
(L.L.door_4) (F.L.door_4_cls_speed) (S.L.doorMaxSpeed_4)
(L.L.door_4) (F.L.door_4_cls_speed_2) (S.L.door_4f)
{endif}
(C.L.bdoor_acc) (S.L.doorAcc_4)
(L.L.doorTarget_45) ! (L.L.doorSpeed_4) s0 abs 0.05 > (L.L.door_4) 0 > &&
{if}
(L.L.doortimer45) (C.L.tuerverzoegerung) =
{if}
l0 /-/ (L.L.doorMaxSpeed_4) <
{if}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * - (S.L.doorSpeed_4)
{else}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * + (S.L.doorSpeed_4)
{endif}
(L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
{endif}
{else}
(L.L.doorSpeed_4) abs 0.05 > (L.L.door_4) 1 < (L.L.doorTarget_45) &&
{if}
l0 (L.L.doorMaxSpeed_4) <
{if}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * + (S.L.doorSpeed_4)
{else}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * - (S.L.doorSpeed_4)
{endif}
(L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
{else}
0 (S.L.doorSpeed_4)
{endif}
{endif}
{else}
(L.L.doorTarget_45) ! (L.L.doorSpeed_4) s0 abs 0.05 > (L.L.door_4) 0 > &&
{if}
(L.L.doortimer45) (C.L.tuerverzoegerung) =
{if}
l0 /-/ (L.L.doorMaxSpeed_4) <
{if}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * - (S.L.doorSpeed_4)
{endif}
(L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
{endif}
{else}
(L.L.doorSpeed_4) abs 0.05 > (L.L.door_4) 1 < (L.L.doorTarget_45) &&
{if}
l0 (L.L.doorMaxSpeed_4) <
{if}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * + (S.L.doorSpeed_4)
{endif}
(L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
{else}
0 (S.L.doorSpeed_4)
{endif}
{endif}
{endif}
(L.L.door_4) 1 >
{if}
(T.L.ev_doorhitopen_4)
1 (S.L.door_4)
(L.L.doorSpeed_4) /-/ (L.L.doorRefl_4) * (S.L.doorSpeed_4)
{else}
(L.L.door_4) 0 <
{if}
(T.L.ev_doorhitclose_4)
0 (S.L.door_4)
(L.L.doorSpeed_4) /-/ (L.L.doorRefl_4) * (S.L.doorSpeed_4)
{endif}
{endif}
(L.L.door_4) (S.L.doorDragAcc_4)
{else}
(L.L.doorDragAcc_4) (S.L.door_4)
{endif}
{end}
{macro:Door5_Calc}
(L.L.door_45_nothahn) !
{if}
(C.L.electric_doors)
{if}
(L.L.doorTarget_45)
{if}
(L.L.door_5) (F.L.door_5_opn_speed) (S.L.doorMaxSpeed_5)
(L.L.door_5) (F.L.door_5_opn_speed_2) (S.L.door_5f)
{else}
(L.L.door_5) (F.L.door_5_cls_speed) (S.L.doorMaxSpeed_5)
(L.L.door_5) (F.L.door_5_cls_speed_2) (S.L.door_5f)
{endif}
(C.L.bdoor_acc) (S.L.doorAcc_5)
(L.L.doorTarget_45) ! (L.L.doorSpeed_5) s0 abs 0.05 > (L.L.door_5) 0 > &&
{if}
(L.L.doortimer45) (L.S.Timegap) + (C.L.tuerverzoegerung) min (S.L.doortimer45)
(C.L.tuerverzoegerung) =
{if}
l0 /-/ (L.L.doorMaxSpeed_5) <
{if}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * - (S.L.doorSpeed_5)
{else}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * + (S.L.doorSpeed_5)
{endif}
(L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
{endif}
{else}
(L.L.doorSpeed_5) abs 0.05 > (L.L.door_5) 1 < || (L.L.doorTarget_45) &&
{if}
l0 (L.L.doorMaxSpeed_5) <
{if}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * + (S.L.doorSpeed_5)
{else}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * - (S.L.doorSpeed_5)
{endif}
(L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
0 (S.L.doortimer45)
0 (S.L.trigger_antirepeat45)
{else}
0 (S.L.doorSpeed_5)
{endif}
{endif}
(L.L.doortimer45) (C.L.tuerverzoegerung) =
(L.L.doortimer45) 0 > &&
{if}
(L.L.trigger_antirepeat45) 1 + (S.L.trigger_antirepeat45)
(L.L.trigger_antirepeat45) 1 =
{if}
(T.L.ev_doortriggerclose_5)
{endif}
{endif}
{else}
(L.L.doorTarget_45) ! (L.L.doorSpeed_5) s0 abs 0.05 > (L.L.door_5) 0 > || &&
{if}
(L.L.doortimer45) (L.S.Timegap) + (C.L.tuerverzoegerung) min (S.L.doortimer45)
(C.L.tuerverzoegerung) =
{if}
l0 /-/ (L.L.doorMaxSpeed_5) <
{if}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * - (S.L.doorSpeed_5)
{endif}
(L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
{endif}
{else}
(L.L.doorSpeed_5) abs 0.05 > (L.L.door_5) 1 < || (L.L.doorTarget_45) &&
{if}
l0 (L.L.doorMaxSpeed_5) <
{if}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * + (S.L.doorSpeed_5)
{endif}
(L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
0 (S.L.doortimer45)
0 (S.L.trigger_antirepeat45)
{else}
0 (S.L.doorSpeed_5)
{endif}
{endif}
(L.L.doortimer45) (C.L.tuerverzoegerung) =
(L.L.doortimer45) 0 > &&
{if}
(L.L.trigger_antirepeat45) 1 + (S.L.trigger_antirepeat45)
(L.L.trigger_antirepeat45) 1 =
{if}
(T.L.ev_doortriggerclose_5)
{endif}
{endif}
{endif}
(L.L.door_5) 1 >
{if}
(T.L.ev_doorhitopen_5)
1 (S.L.door_5)
(L.L.doorSpeed_5) /-/ (L.L.doorRefl_5) * (S.L.doorSpeed_5)
{else}
(L.L.door_5) 0 <
{if}
(T.L.ev_doorhitclose_5)
0 (S.L.door_5)
(L.L.doorSpeed_5) /-/ (L.L.doorRefl_5) * (S.L.doorSpeed_5)
{endif}
{endif}
(L.L.door_5) (S.L.doorDragAcc_5)
{else}
(L.L.doorDragAcc_5) (S.L.door_5)
{endif}
{end}
{macro:trg_bus_doorfront0}
(L.L.doorTarget_0) ! (S.L.doorTarget_0)
{if}
(T.L.ev_doortriggeropen_0)
{else}
(T.L.ev_doortriggerclose_0)
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{end}
{macro:trg_bus_doorfront1}
(L.L.doorTarget_1) ! (S.L.doorTarget_1)
{if}
(T.L.ev_doortriggeropen_1)
{else}
(T.L.ev_doortriggerclose_1)
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{end}
{macro:trg_bus_doorback23}
(L.L.doorTarget_23) ! (S.L.doorTarget_23)
{if}
(T.L.ev_doortriggeropen_2)
{else}
(C.L.tuerverzoegerung) 0 >
{if}
(T.L.ev_doorwarn)
{else}
(T.L.ev_doortriggerclose_2)
{endif}
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{end}
{macro:trg_bus_doorfront5}
(L.L.doorTarget_45) ! (S.L.doorTarget_45)
{if}
(T.L.ev_doortriggeropen_5)
{else}
(C.L.tuerverzoegerung) 0 >
{if}
(T.L.ev_doorwarn2)
{else}
(T.L.ev_doortriggerclose_5)
{endif}
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{end}
{macro:trg_bus_20h-switch}
(L.L.door_20h_sw) ! (S.L.door_20h_sw)
(L.L.door_20h_sw)
{if}
(T.L.ev_haltebremse_sw_an)
{else}
(T.L.ev_haltebremse_sw_aus)
{endif}
{end}
{macro:trg_bus_dooraft}
(L.L.bremse_halte_sw) ! (S.L.bremse_halte_sw)
(L.L.bremse_halte_sw)
{if}
(T.L.ev_haltebremse_sw_an)
{else}
(T.L.ev_haltebremse_sw_aus)
{endif}
{end}
{trigger:cp_schulfahrschalter}
(L.L.schulfahrschaltung) ! (S.L.schulfahrschaltung)
(T.L.ev_VDV_toggle_on)
1 (S.L.schulfahrschalter_sw)
{end}
{trigger:cp_schulfahrschalter_off}
0 (S.L.schulfahrschalter_sw)
(T.L.ev_VDV_toggle_off)
{end}
{trigger:cp_autoschalter}
(L.L.autoschalter) ! (S.L.autoschalter)
(L.L.autoschalter)
{if}
(T.L.ev_VDV_on)
{else}
(T.L.ev_VDV_off)
{endif}
{end}
{trigger:cp_tuersperre}
(L.L.tuersperre) 1 + (S.L.tuersperre)
(L.L.tuersperre_sw) 1 + (S.L.tuersperre_sw)
(L.L.tuersperre_sw) 2 =
{if}
-1 (S.L.tuersperre_sw)
-1 (S.L.tuersperre)
(T.L.ev_kippschalter_ein)
{else}
(T.L.ev_kippschalter_aus)
{endif}
{end}
{macro:door_traegheit}
'Simuliert träges Verhalten (exponentiell)
'Ladekonventionen:
' Sollwert l0
' Istwert l1
' Konstante Anlauf l2 (Einheiten/s)
' Konstante Ablauf l3 (Einheiten/s)
'Anlauf oder Auslauf?
l0 l1 >
{if}
l2 (L.S.Timegap) * 1 min -1 max s4
{else}
l3 (L.S.Timegap) * 1 min -1 max s4
{endif}
'Sollwert:
l0
'Istwert:
l1
'Beschleunigung:
- l4 *
'Addition zum Istwert:
l1 + s1
{end}
---------------------------
Soundsets:
0 - Normal:
[stepsoundpack]
5
Step_01.wav
Step_02.wav
Step_03.wav
Step_04.wav
Step_05.wav
---------------------------
Pathpoints:
0
[pathpnt]
1.35
5.2
0.405
1
[pathpnt]
1.35
4.62
0.405
2
[pathpnt]
1.35
-0.7
0.405
3
[pathpnt]
1.35
-1.2
0.405
4
[pathpnt]
0.62
5.2
0.44
5
[pathpnt]
0.25
5
0.44
6
[pathpnt]
0.3
4.45
0.44
7
[pathpnt]
0
4.25
0.44
8
[pathpnt]
0
3.75
0.44
9
[pathpnt]
0
3.25
0.44
10
[pathpnt]
0
2.75
0.44
11
[pathpnt]
0
2.25
0.44
12
[pathpnt]
0
1.75
0.44
13
[pathpnt]
0
1.25
0.44
14
[pathpnt]
0
0.75
0.44
15
[pathpnt]
0
0.25
0.44
16
[pathpnt]
0
-0.25
0.44
17
[pathpnt]
0
-0.75
0.45
18
[pathpnt]
0
-1.25
0.463
19
[pathpnt]
0
-2.25
0.5
20
[pathpnt]
0
-2.75
0.482
21
[pathpnt]
0
-3.25
0.493
22
[pathpnt]
0.1
-3.75
0.503
23
[pathpnt]
0.15
-4.25
0.503
24
[pathpnt]
0.15
-4.456
0.503
25
[pathpnt]
0.5
-0.7
0.44
26
[pathpnt]
0.5
-1.2
0.44
27
[pathpnt]
0.3
4.62
0.44
---------------------------
Pathlinks:
[next_stepsound]
0
[next_roomheight]
2.5
Unterer Mittelgang:
[pathlink]
6
7
[pathlink]
6
7
[pathlink]
7
8
[pathlink]
8
9
[pathlink]
9
10
[pathlink]
10
11
[pathlink]
11
12
[pathlink]
12
13
[pathlink]
13
14
[pathlink]
14
15
[pathlink]
15
16
[pathlink]
16
17
[pathlink]
17
18
[pathlink]
18
19
[pathlink]
19
20
[pathlink]
20
21
[pathlink]
21
22
[pathlink]
22
23
[pathlink]
23
24
Ausgang 1
[pathlink]
17
25
[pathlink]
25
2
[pathlink]
18
26
[pathlink]
26
3
Ich verstehe es nicht warum es nicht funktioniert