Strefa OMSI

Pełna wersja: Sygnalizacja świetlna na skrzyżowaniach
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Programowanie sygnalizacji świetlnych.

Może podjąłem się opisania dość niszowego elementu OMSI, ale jakby nie patrzeć, sygnalizacja świetlna wpływa na naszą podróż, nerwy i rozkład jazdy;)

Najważniejsze elementy dot. sygnalizacji znajdują się w obiektach skrzyżowań, czyli w plikach *.sco.
Określamy w nich:
- czas trwania cyklu,
- czas wyświetlania sygnału czerwonego, czerwonego+zółtego, zielonego i żółtego (dla pieszych czerwonego i zielonego) dla poszczególnych sygnalizatorów lub grup sygnalizatorów.

Na początku trzeba zacząć od... opracowania samego systemu układu sygnalizacji:) Tutaj przyda się kartka papieru i rozrysowanie skrzyżowania wraz z ułożeniem poszczególnych sygnalizatorów.

UWAGA! Przed rozpoczęciem samych prac wypada przegrać plik obiektu i zmienić jego nazwę, tak aby oryginalny obiekt nadal występował w grze.


Przyjmijmy, że posiadamy skrzyżowanie z 4 wlotami, a każdy z wlotów posiada sygnalizatory ogólne, czyli bez żadnych strzałek. Każdy z wlotów będzie osobną grupą.

Otwieramy w edytorze tekstu plik skrzyżowania (.sco) i odnajdujemy "[traffic_lights_group]". Wartość pod określa nam czas trwania cyklu.
Przyjmijmy, że ów cykl trwa 70 sekund, czyli zapisujemy "70.0000000000000".

W kolejny etapie określamy grupy sygnalizatorów, od nagłówka "[traffic_light]", gdzie znajduje się zapis podobny do poniższego:
Kod:
Main
[phase]
3
2.0000000000000

[phase]
6
26.0000000000000

[phase]
9
3.0000000000000

[phase]
0
39.0000000000000

Napis "Main" oznacza nazwę grupy i możemy ją nazwać dowolnie jak chcemy, np. nazwą ulicy, na której wlocie będą umieszczony sygnalizatory.
Pod "phase" cyfry 0, 3, 6 i 9 określają poszczególne sygnały:
0 - czerwony
3 - czerwony+żółty (nie dotyczy pieszych)
6 - zielony
9 - żółty (nie dotyczy pieszych),
a wartości pod nimi czas trawania tych sygnałów w sekundach.

W przykładzie mamy podane, że: sygnał czerwony+żółty trwa 2 sekundy (wg przepisów min. 1 sek.), sygnał zielony przez 26 sekund, żółty 3 sekudny (wg przepisów min. 3 sek.) a czerwony to pozostały czas z 70 sekund trwania cyklu, czyli 39 sekund.

Następnie tworzymy kolejna grupę sygnalizacji. Postępujemy jak wcześniej, ale pamiętajmy. Jeżeli chcemy, aby na początku był wyświetlany przez X sekund np. sygnał czerwony, pod pierwszą fazą ([phase]) w tej grupie musi być cyfra "0" (czyli sygnał czerwony) i czas jego trwania.

Oczywiście nie unikniemy też sytuacji, gdzie na początku i końcu fazy będzie musiał być wyświetlany sygnał czerwony. Wtedy nasz układ faz będzie wyglądał tak:
Kod:
[phase]
0
XX.0000000000000

[phase]
3
XX.0000000000000

[phase]
6
XX.0000000000000

[phase]
9
XX.0000000000000

[phase]
0
XX.0000000000000

Gdy wprowadzimy powyższe wartości, w dalszej części naszego pliku musimy określić, który path (czyli droga AI) będzie odnosił się do jakiego sygnalizatora. Interesują nas wszystkie pathe, który posiadają linię "[use_traffic_light]". Cyfra pod spodem odnosi się do grupy sygnalizatorów.
Grupy sygnalizatorów numerujemy od "0" i dalej 1, 2 itd.

Aby sprawdzić jaki path jest na jakim wlocie i pasie ruchu, w edytorze po wejściu w zakładkę "Traffic rules" najeżdżamy na drogę-path, a po prawej stronie ukaże się nam nr patha. Interesuje nas cyfra po "/".
Jeżeli pojawi nam się zapis "/ 3", oznacza to, że ten path jest jako 4 od góry, gdyż numerujemy je od 0.
[Obrazek: patchskrzyz.jpg]

Jak wszystko podpiąć na skrzyżowaniu, jest już opisane w ogólnym poradniku dot. edytora.
Jakaś różnica pomiedzy
XX.0000000000000
a
XX.0000000000061?
Przekierowanie