[NÁVOD] Automatická výstraha pred zatvorením dverí
Napsal: 05 srp 2013 14:47
Ahojte! Dnes som pripravil návod, ako naskriptovať automatickú výstrahu pred zatvorením dverí, ktorá bude fungovať podobne ako u MB O405N2.
Upravovať sa budú 3 súbory
..\OMSI\Vehicles\...\Script\door.osc resp. inak nazvaný skript dverí
..\OMSI\Vehicles\...\Script\door_varlist.txt resp. inak nazvaný súbor s premennými dverí
..\OMSI\Vehicles\...\Sound\____.cfg
Nezabudnite si ich zálohovať, ak by niečo nevyšlo.
---------------------------------------------------------------------
1. dopíšeme do súboru door_varlist.txt dve premenné pre každé dvere, ktorým chceme priradiť výstrahu pred zatvorením. Jednu pre odpočítanie času výstarhy a druhú pomocnú.
napr.
door_Warncounter
door_Warn
ak chceme výstrahu priradiť viacerým nezávislým dverám
door_Warncounter0
door_Warn0
door_Warncounter1
door_Warn1
atď.
---------------------------------------------------------------------
2. otvoríme súbor door.osc
nájdeme makro pre otvorenie daných dverí tak, že vyhľadáme nasledujúci odstavec alebo jemu podobné:
{trigger:bus_doorfront0} - názov funkcie, ktorej je možné priradiť klávesu (bus_doorfront0 je štandartne priradené "Num/")
Podľa toho je možné zistiť, ktoré dvere sa otvoria.
zaujímať nás bude riadok (M.L.trg_bus_doorfront0)
vyhľadáme trg_bus_doorfront0 a mali by sme mať pred sebou tento odstavec:
a upravíme ho nasledovne
kde:
0 (S.L.door_Warncounter) - pri otvorení dverí sa nebude čakať na výstrahu a ani sa neprehrá
(T.L.ev_door_Warnsound) - príkaz na prehranie zvuku (pre viacero dverí je potrebné rozlíšiť napr. (T.L.ev_door_Warnsound0), (T.L.ev_door_Warnsound1) atď.)
1.5 (S.L.door_Warncounter) - 1.5 - dľžka oneskorenia zatvorenia dverí od stlačenia tlačidla resp. dĺžka nahrávky výstrahy.
1 (S.L.door_Warn) - pomocná premenná a jej hodnota
teraz nájdeme odstavec macro:Door _Calc, kde sa bude nachádzať riadok s prísušným (L.L.doorTarget_ )
teda v tomto prípade s (L.L.doorTarget_0):
a na konci tohto odstavca
a zmeníme ho na:
a na konci tohto odstavca:
kde pridané časti:
(L.L.door_Warncounter) 0 <
{if}
- pohyb dverí nastane až po skončení odpočítavania
(L.L.door_Warn) 1 =
{if}
(T.L.ev_doortriggerclose_1)
0 (S.L.door_Warn)
{endif}
- spustí zvuk zatvorenia dverí až po výstrahe
{else}
(L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
{endif}
- spustí odpočítavanie času pre výstrahu
---------------------------------------------------------------------
3. Otvoríme súbor: ..\OMSI\Vehicles\...\Sound\____.cfg
a na koniec pripíšeme
kde:
[3d]
-1.25 - pozícia x
0.0 - pozícia y
1.6 - pozícia z
0.5 - okruh, v ktorom bude 100% hlastiosť zvuku
Tento odstavec je potrebné zapísať pre každé dvere zvlášť so súradnicami jednotlivých dverí (súradnice je možné nájsť u zvukov dverí)
A to je všetko, čo je potrebné spraviť. Príjemnú zábavu
Ak by sa vyskytol nejaký problém, kľudne píšte, u seba som to skúšal na SU 15 a funguje to.
Upravovať sa budú 3 súbory
..\OMSI\Vehicles\...\Script\door.osc resp. inak nazvaný skript dverí
..\OMSI\Vehicles\...\Script\door_varlist.txt resp. inak nazvaný súbor s premennými dverí
..\OMSI\Vehicles\...\Sound\____.cfg
Nezabudnite si ich zálohovať, ak by niečo nevyšlo.
---------------------------------------------------------------------
1. dopíšeme do súboru door_varlist.txt dve premenné pre každé dvere, ktorým chceme priradiť výstrahu pred zatvorením. Jednu pre odpočítanie času výstarhy a druhú pomocnú.
napr.
door_Warncounter
door_Warn
ak chceme výstrahu priradiť viacerým nezávislým dverám
door_Warncounter0
door_Warn0
door_Warncounter1
door_Warn1
atď.
---------------------------------------------------------------------
2. otvoríme súbor door.osc
nájdeme makro pre otvorenie daných dverí tak, že vyhľadáme nasledujúci odstavec alebo jemu podobné:
- Kód: Vybrat vše
{trigger:bus_doorfront0}
(L.L.elec_busbar_avail)
{if}
(M.L.trg_bus_doorfront0)
{endif}
1 (S.L.cockpit_tuertaster1)
{end}
{trigger:bus_doorfront0} - názov funkcie, ktorej je možné priradiť klávesu (bus_doorfront0 je štandartne priradené "Num/")
Podľa toho je možné zistiť, ktoré dvere sa otvoria.
zaujímať nás bude riadok (M.L.trg_bus_doorfront0)
vyhľadáme trg_bus_doorfront0 a mali by sme mať pred sebou tento odstavec:
- Kód: Vybrat vše
{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}
a upravíme ho nasledovne
- Kód: Vybrat vše
{macro:trg_bus_doorfront0}
(L.L.doorTarget_0) ! (S.L.doorTarget_0)
{if}
(T.L.ev_doortriggeropen_0)
0 (S.L.door_Warncounter)
{else}
(T.L.ev_door_Warnsound)
1.5 (S.L.door_Warncounter)
1 (S.L.door_Warn)
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{end}
kde:
0 (S.L.door_Warncounter) - pri otvorení dverí sa nebude čakať na výstrahu a ani sa neprehrá
(T.L.ev_door_Warnsound) - príkaz na prehranie zvuku (pre viacero dverí je potrebné rozlíšiť napr. (T.L.ev_door_Warnsound0), (T.L.ev_door_Warnsound1) atď.)
1.5 (S.L.door_Warncounter) - 1.5 - dľžka oneskorenia zatvorenia dverí od stlačenia tlačidla resp. dĺžka nahrávky výstrahy.
1 (S.L.door_Warn) - pomocná premenná a jej hodnota
teraz nájdeme odstavec macro:Door _Calc, kde sa bude nachádzať riadok s prísušným (L.L.doorTarget_ )
teda v tomto prípade s (L.L.doorTarget_0):
- Kód: Vybrat vše
{macro:Door0_Calc}
(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}
a na konci tohto odstavca
- Kód: Vybrat vše
(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}
{end}
a zmeníme ho na:
- Kód: Vybrat vše
{macro:Door0_Calc}
(L.L.door_Warncounter) 0 <
{if}
(L.L.door_Warn) 1 =
{if}
(T.L.ev_doortriggerclose_1)
0 (S.L.door_Warn)
{endif}
(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}
a na konci tohto odstavca:
- Kód: Vybrat vše
(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}
{else}
(L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
{endif}
{end}
kde pridané časti:
(L.L.door_Warncounter) 0 <
{if}
- pohyb dverí nastane až po skončení odpočítavania
(L.L.door_Warn) 1 =
{if}
(T.L.ev_doortriggerclose_1)
0 (S.L.door_Warn)
{endif}
- spustí zvuk zatvorenia dverí až po výstrahe
{else}
(L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
{endif}
- spustí odpočítavanie času pre výstrahu
---------------------------------------------------------------------
3. Otvoríme súbor: ..\OMSI\Vehicles\...\Sound\____.cfg
a na koniec pripíšeme
- Kód: Vybrat vše
[sound]
(názov zvukového súbor s výstrahou).wav
1
[3d]
-1.25
0.0
1.6
0.5
[trigger]
ev_door_Warnsound
kde:
[3d]
-1.25 - pozícia x
0.0 - pozícia y
1.6 - pozícia z
0.5 - okruh, v ktorom bude 100% hlastiosť zvuku
Tento odstavec je potrebné zapísať pre každé dvere zvlášť so súradnicami jednotlivých dverí (súradnice je možné nájsť u zvukov dverí)
A to je všetko, čo je potrebné spraviť. Príjemnú zábavu
Ak by sa vyskytol nejaký problém, kľudne píšte, u seba som to skúšal na SU 15 a funguje to.