Stránka 1 z 9

[NÁVOD] Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 18:46
od stefco
Dnes sa pokúsim vysvetliť ako funguje nastavenie nástupu a výstupu cestujúcich všetkými dverami. Za to sú zodpovedné 2 súbory:

1. ..\model\passengercabin.cfg (resp. inak nazvaný súbor definovaný v .bus ako [passengercabin]
2. ..\script\door.osc (resp. inak nazvaný skript dverí)

U rôznych autobusov môžu byť pomenované inak, prípadne môžete úpravou vytvoriť nové a iba prepísať ich názvy v .bus súbore

Ako príklad uvediem úpravu Citybusu pre nástup a výstup všetkými dverami:

Takže k 1.súboru:

Zaujímať nás bude odstavec:
###################################

[entry]
0

[entry]
5

{noticketsale}

[exit]
37

[exit]
40

[exit]
27

[exit]
30

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


Krátky popis, čo tento odstavec popisuje:

[entry] - miesto nátupu
číslo - číslo pathpoint z paths.cfg

{noticketsale} - miesto nástupu bez predaja lístkov

[exit] - miesto výstupu
číslo - číslo pathpoint z paths.cfg


Čísla pathpointov sú dané autormi autobusov a nie je možné ich meniť, iba pridať [entry] alebo [exit] pre dané číslo pathpointu. Jeden pathpoint môže byť súčasne nástupný aj výstupný bod.

U citybusu je možné predpokladať, že pre predné dvere sú definované 2 nástupné miesta(pre každé krídlo), pričom druhé krídlo je bez predaja lístkov. Podobne je to aj pre výstup zadným dverami (u niektorých busov je iba 1 nástupné resp. výstupné miesto pre jedny dvere).

Nástupné miesto, ktoré je definované ako prvé, je zároveň to, ku ktorému sa cestujúci pohrnú ak autobus zastaví na zastávke ale vodič ešte neotvorí dvere.

Samotná úprava:

Aby cestujúci nastupovali všetkými dverami, je potrebné zapísať pre všetky miesta aj nástup aj výstup. Aby cestujúci, ktorý si chcú zakúpiť lístok u vodiča nastupovali iba prednými dverami, je nutné ku každému [entry] okrem predných dverí dopísať aj {noticketsale}. Pre výstup prednými dverami je potrebné pridať [exit] aj k predným dverám.

Tu je príklad upravenej časti passengercabin.cfg pre Citybus:
Kód: Vybrat vše
###################################

[entry]
0

[entry]
5

{noticketsale}

[entry]
37

{noticketsale}

[entry]
40

{noticketsale}

[entry]
27

{noticketsale}

[entry]
30

{noticketsale}

[exit]
37

[exit]
40

[exit]
27

[exit]
30

[exit]
0

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


Nebude vadiť ak, by boli [entry] a [exit] premiešané medzi sebou. Dôležité je poradie jednotlivých [entry] a [exit] pre druhý súbor.
Toľko k úprave 1.súboru.
-------------------------------------------------------------------------
Teraz prejdeme na druhý súbor - skript dverí. Tu to bude o niečo zložitejšie:

Nájdeme odstavec {macro:Door_Frame}, konkrétne jeho časť

(L.L.door_0) 0.9 > (S.L.PAX_Entry0_Open)
(L.L.door_2) 0.9 > (S.L.PAX_Entry1_Open)
(L.L.door_1) 0.9 > (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open) (S.L.PAX_Exit2_Open) (S.L.PAX_Exit3_Open)


Opäť krátky popis:

(L.L.door_0) atď. - konkrétny script dverí (u rozličných busov je (L.L.door_x) naskriptované inak, t.j. je potrebné v tom istom scripte dohľadať, ktoré dvere sa otvoria)
(S.L.PAX_Entry0_Open) resp. (S.L.PAX_Exit0_Open) - definuje, ktoré nástupé resp. výstupné miesto sa sprístupní otvorením daných dverí. Teda:
Entry0 - prvé nástupné miesto v poradí z predošlého súboru
Exit0 - prvé výstupné miesto v poradí z predošlého súboru
Entry1 - druhé nástupné miesto v poradí z predošlého súboru
Exit1 - druhé výstupné miesto v poradí z predošlého súboru
atď.

U niektorých busov sú dvere definované ako dve samostatné krídla, v tom prípade sa zapíšu napr. takto:
(L.L.door_4) 0.9 > (L.L.door_5) 0.9 > && (S.L.PAX_Entry0_Open)

Ak je dverami definovaný výstup aj nástup, prípadne (L.L.door_x) pokrýva viac dverí, alebo je viac nástupných a/alebo výstupných miest pre jedny dvere, zapíše sa definícia napr. takto:
(L.L.door_1) 0.9 > (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open) (S.L.PAX_Exit2_Open) (S.L.PAX_Exit3_Open)

Obe tieto varianty je možné kombinovať, teda môže vzniknúť niečo také:
(L.L.door_4) 0.9 > (L.L.door_5) 0.9 > && (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open) (S.L.PAX_Exit2_Open) (S.L.PAX_Exit3_Open)

U Citybusu môžme vidieť už z pôvodného priradenia nástupných a výstupných miest, že (L.L.door_0) reprezentuje 1.krídlo predných dverí, (L.L.door_2) druhé krídlo predných dverí a (L.L.door_1) stredné a zadné dvere.

Teda úprava tejto časti skriptu dverí (door_oth.osc) pre Citybus vzhľadom na predošlú úpravu passengercabin.cfg:
Kód: Vybrat vše
   (L.L.door_0) 0.9 > (S.L.PAX_Entry0_Open) (S.L.PAX_Exit4_Open)
   (L.L.door_2) 0.9 > (S.L.PAX_Entry1_Open)
   (L.L.door_1) 0.9 > (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open) (S.L.PAX_Exit2_Open) (S.L.PAX_Exit3_Open) (S.L.PAX_Entry2_Open) (S.L.PAX_Entry3_Open) (S.L.PAX_Entry4_Open) (S.L.PAX_Entry5_Open)



Zámerne som nepridal výstup k druhému krídlu predných dverí, pretože citybus umožňuje uzamknutie jedného krídla predných dverí (odpovedá im (L.L.door_2) a (S.L.PAX_Entry1_Open)).


Je možné zameniť poradie nástupných a výstupných miest v passengercabin.cfg (napr. aby cestujúci najprv zamierili k prostredným dverám), ale musí tomu odpovedať úprava v skripte dverí, teda správne označenie nástupného resp. výstupného miesta pre dané dvere.

Ak sa zle priradia nástupné/výstupné miesta k jednotlivým dverám, bude dochádzať k nástupu resp. výstupu cez zatvorené dvere pri otvorení iných dverí, alebo budú cestujúci čakať pred otvorenými dverami.

Podobným spôsobom je možné upraviť aj iné autobusy v OMSI.

Ak by bolo niečo nejasné, kľudne sa môžete pýtať ;)

Re: Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 19:02
od Peterson
Čiže sa dá spraviť aj nastupovanie prednými a prostrednými dverami a výstup prostrednými a zadnými dverami?

Re: Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 19:10
od stefco
Peterson: Áno dá. V passengercabin.cfg dáš [entry] a [exit] podľa toho, ako to budeš chcieť a z toho bude vplývať aj úprava skriptu dverí.

Re: Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 19:45
od Tomko00
Wáu, zahŕňa ten návod aj chodenie k viacerým dverám naraz? :)

Re: Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 20:06
od stefco
Tomko00: Neviem či som správne pochopil tvoj dotaz.

Ak si tým myslel či nastupujú viacerými dverami naraz, tak v podstate áno, ale OMSI bude stále brať ako "prioritu" prvý nástupný bod v passengercabin.cfg a samozrejme tí, čo si budú chcieť kúpiť lístok, nepôjdu cez [entry], kde bude aj {noticketsale}. Ale ak na zastávke neotvoríš žiadne dvere tak všetci prídu k prvému nástupnému bodu v zozname.

Ak si tým myslel, či vystupujú viacerými dverami naraz, tak áno.

Re: Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 20:30
od Tomko00
Nie nie, nepochopili sme sa :), myslel som to tak, že keď proste prídeš na zastávku, tak že tý ľudia nedobehnú len k jedným dverám, ale k viacerým, ako je napr. G&S z Viedne. :)

Re: Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 21:24
od stefco
Ach tak. Tak potom nie, tento návod to nezahŕňa. To aby sa ľudia rozbehli k viacerým dverám, bude pravdepodobne nejak súvisieť s dopytovým otváraním dverí a to v tomto návode nie je.

Re: Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 21:38
od Tomko00
Škoda. :) Rovno sem pribehnem aj s jedným problémom. Robím nástup na C954E, a ľudia nastupujú do zadných dverí len keď mám otvorené predné, a nastupujú aj cez zatvorené zadné. :)
V door.osc mám:
(L.L.door_0) 0.9 > (L.L.door_1) 0.9 > && (S.L.PAX_Entry0_Open)
(L.L.door_2) 0.9 > (L.L.door_3) 0.9 > && (S.L.PAX_Entry1_Open) (S.L.PAX_Exit0_Open)
V passcabine mám:
[entry]
0

[entry]
10

[exit]
10

Re: Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 22:00
od stefco
Spýtam sa trošku banálnu vec. U C954E je v zložke Script viacero skriptov dverí. Upravil si ten správny, teda door_nd.osc, ktorý je zapísaný v .bus súbore?

Re: Úprava skriptov pre nástup a výstup všetkými dverami

PříspěvekNapsal: 02 črc 2013 22:03
od Tomko00
Aaaach, no vidíš, ja som upravoval door.osc, díky! :)