Strefa OMSI

Pełna wersja: Dodanie możliwości wsiadania wszystkimi drzwiami tzw "Door mod"
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam,
jako, że większość modeli pojazdów na scene omsi wychodzi głównie z niemiec (i pochodnych) system wsiadania jest zazwyczaj właśnie typowo niemiecki czyli wsiadanie pierwszymi drzwiami tylko i wyłącznie. Przerobienie tego systemu na system wsiadania wszystkimi drzwiami jest dość banalny i aż dziwię się, że do tej pory nie było żadnego poradnika jak to zmienić.

Tak więc zaczynajmy:

1.W interesującym nas modelu autobusu otwieramy interesujący nas plik .bus i sprawdzamy tam dwie rzeczy (Dla pojazdów przegubowych trzy)

a. Jaka jest dokładna nazwa pliku passengercabin.cfg
Kod:
[passengercabin]
model\passengercabin_GN92_main.cfg
b. Jaka jest dokładna nazwa pliku door.osc
Kod:
[script]
[...]
script\door-3.osc
[...]
c1. Jaka jest nazwa pliku .bus odpowiedzialnego za sekcję B (Punkt tylko dla pojazdów przegubowych)
Kod:
[couple_back]
MAN_GN92_trail.bus
false
c2. W pliku .bus przez nas znalezionych w punkcie c1 sprawdzamy nazwę passangerscabin sekcji B.

2.Kolejny krok to otworzenie wszystkich plików przez nas szukanych w dowolnym edytorze tekstu (polecam Notepad ++) oraz wykonanie ich kopii zapasowych.

3.W plikach passangerscabin.cfg szukamy takiej sekcji
Kod:
###################################

[entry]
0

[entry]
2

{noticketsale}

[exit]
10

[exit]
12

[linkToPrevVeh]
16

###################################

Kolejne wpisy [entry] oznaczają ścieżkę wejść a wpisy [exit] ścieżkę wyjść. Należy je liczyć od góry zawsze od 0 (osobno [entry] i osobno [exit])

Pierwszym ważnym krokiem będzie dopisanie pod ostatnim [entry] kolejne takie wpisy ale z numerami ścieżek (tą cyfrą pod spodem) zgodnie z numerami ścieżek jak we wpisach [exit] Zazwyczaj wpisy są dodawane zgodnie z kolejnością drzwi w pojeździe więc nie musimy się martwić o to który numer ścieżki to które drzwi.

Przykład uzupełnionego wpisu passangerscabin:
Kod:
###################################

[entry]
0

[entry]
2

{noticketsale}

[entry]
10

[entry]
12

[exit]
10

[exit]
12

[linkToPrevVeh]
16

###################################

Przy takim wpisaniu pasażerowie będą podchodzili do pierwszych drzwi w sytuacji gdy wszystkie drzwi będą zamknięte a w sytuacji gdy któreś drzwi otwarte to pasażerowie udadzą się do najbliższych otwartych.

Można uzyskać jeszcze inną sytuacje: Pasażerowie przy zamkniętych drzwiach udadzą się do najbliższych im drzwi jednakże nie będą reagowali na inne otwarte drzwi niż te, do których się udali w pierwszej kolejności. Uzyskać to można dodając pod danymi wejściami wpisy {withbutton}:
Kod:
[entry]
0

[entry]
2

{withbutton}
Po wykonaniu przez nas zmian zapisujemy pliki ale ich nie zamykamy, jeszcze się przydadzą.

4. Kolejnym etapem będzie otwarcie szukanego przez nas wcześniej pliku door.osc
W nim szukamy czegoś takiego:
Kod:
(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_Exit1_Open) (S.L.PAX_Exit2_Open)
    (L.L.door_4) 0.9 > (L.L.door_5) 0.9 > && (S.L.PAX_Exit3_Open) (S.L.PAX_Exit4_Open)
Teraz sprawdzamy czy nasze ścieżki się zgadzają, mówię sprawdzamy dlatego, że nieraz skrypt (szczególnie te nowsze oparte już na manie ng czyli z omsi 2) mają już wpisane ścieżki do odpowiednich drzwi. Wytłumaczę jak sprawdzić:
Kod:
(L.L.door_0) 0.9 > (S.L.PAX_Entry0_Open) - Wpis [entry] z passangerscabin o numerze 0 (czyli pierwszy od góry, bo zaczynamy liczenie od 0)
    (L.L.door_1) 0.9 > (S.L.PAX_Entry1_Open) - Wpis [entry] o numerze 1
    (L.L.door_2) 0.9 > (L.L.door_3) 0.9 > && (S.L.PAX_Exit1_Open) (S.L.PAX_Exit2_Open) (S.L.PAX_Entry2_Open) (S.L.PAX_Entry3_Open) - wpisy [entry] 2 i 3 na drzwiach jak widać o numerach 2 i 3 czyli w tym przypadku na drugiej parze drzwi
    (L.L.door_4) 0.9 > (L.L.door_5) 0.9 > && (S.L.PAX_Exit3_Open) (S.L.PAX_Exit4_Open) (S.L.PAX_Entry4_Open) (S.L.PAX_Entry5_Open)
Przy sprawdzaniu musimy zobaczyć po prostu czy dla danych drzwi pasują wpisy z numerami odpowiadającymi im z pliku passangerscabin. Skrzydła drzwi także liczymy od 0 od przodu. W przypadku gdy nasz wpis wygląda podobnie jak w pierwszym [code] należy dopisywać dla danych drzwi kolejne wpisy (S.L.PAX_EntryX_Open) Gdzie X to numer wpisu entry liczonego od góry od zera z pliku passangerscabin. (W przypadku pojazdu przegubowego wpisy entry i exit z sekcji B będą zawsze tak jakby pod wpisami z sekcji A)

Po sprawdzeniu/dopisaniu takich wpisów (S.L.PAX_EntryX_Open) dla drzwi zapisujemy plik i cieszymy się pasażerami wsiadającymi wszystkimi drzwiami.
Super poradnik! Dzięki za niego. Gdybyś jeszcze dał radę objaśnić jak zrobić manualne otwieranie drzwi to był bym w siódmym niebie:)
Może niebawem coś takiego napiszę tylko tam to jest wyższa szkoła jazdy trochę bo co skrypt to ma praktycznie inaczej, raz trzeba gdzieś fotokomórkę wywalić raz dodać inne macro różnie to bywa ale postaram się coś napisać.
Witam. Zauważyłem że w niektórych pojazdach pod wpisami [entry] znajduje się jednocześnie {noticketsale} i {withbutton}. Co wtedy się dzieje?
Dodatkowo, mam pewien problem, którego proszę o rozwiązanie. Po wykonaniu door-moda dla Solarisów 12 i 18 BVG z perspektywy gracza wszystko działa pomyślnie. Żeby pasażerowie wsiedli oprócz naciśnięcia przycisku przyzwolenia, trzeba nacisnąć przycisk manualnego otworzenia drzwi, z symbolem wózka. Z tym nie mam problemu, tak samo jest w rzeczywistości. Problem tkwi w autobusach AI. "Kierowcy" AI nie umieją nacisnąć przyciska z symbolem wózka, więc pasażerowie przy drugich drzwiach nie reagują, ponieważ pod tymi drzwiami jest wpis {doorbutton}. Przy próbie naprawienia mojego problemu i wpisaniu w drugich drzwiach {noticketsale} (w pierwszych było już wcześniej) owszem, pasażerowie przy zamkniętych drugich podchodzą do pierwszych (otwartych), jednak, przy wszystkich zamkniętych drzwiach zawsze kierują się do pierwszych. W czym tkwi problem? Czy da się go rozwiązać?
Pozdrawiam.
Nie ma takiego wpisu jak doorbutton.
Na wszystkie pytania odpowiedź masz w treści poradnika.

Tutaj cytat:

Można uzyskać jeszcze inną sytuacje: Pasażerowie przy zamkniętych drzwiach udadzą się do najbliższych im drzwi jednakże nie będą reagowali na inne otwarte drzwi niż te, do których się udali w pierwszej kolejności. Uzyskać to można dodając pod danymi wejściami wpisy {withbutton}
Chodziło mi o withbutton. Za drugim razem źle napisałem. To co napisałeś jest dla mnie oczywiste i wciąż nie rozwiązuje mojego problemu.
Przekierowanie