Sama metoda jest dość prosta, o ile ma się jakiekolwiek pojęcie o tych skryptach.
Krok 1.
Odszukujemy macro "door_calc" dla drzwi, w których chcemy zastosować opóźnienie (np. {macro:Door1_Calc}). Pod spodem jeszcze przed całym tym skryptem dodajemy następujący wpis:
Kod:
(L.L.opoznienie_drzwi) 0 <
(L.L.doorTarget_x) 1 = || <--------- tutaj wpisujemy doortarget dla drzwi, które przerabiamy.
Jeśli nie wiemy który robimy doortarget, mamy go w skrypcie kilka linijek niżej
{if}
(L.L.dzwonek_drzwi) 1 =
{if}
0 (S.L.dzwonek_drzwi)
{endif}
[...]reszta skryptu
A na samym końcu tego makra (przed {end} oczywiście) dodajemy:
Kod:
{else}
(L.L.opoznienie_drzwi) (L.S.Timegap) - (S.L.opoznienie drzwi)
{endif}
Dodam w spoilerze dla jasności jak to całe powinno wyglądać (pogrubiłem zmiany):
Krok 2.
Teraz szukamy makra przełącznika tych drzwi. Najczęściej jest na dole, może to być przykładowo {macro:trg_bus_doorfront1} i definiujemy co ma się dziać z opóźnieniem drzwi i przez jaki czas. Najczęściej to makro zawiera:
zadanie
{if} (czyli co musi być wykonane, by komenda została "niewykonana", czyli wyłączona)
{else} czyli co musi być wykonane, by ta komenda została wykonana, czyli włączona)
Po {endif} pod spodem nieważne pierdoły.
Pod "ifami" i "elsami" są najczęściej dźwięki zamknięcia i otwarcia drzwi, w gołym skrypcie SD202 wygląda to tak:
Kod:
{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}
Teraz pod {if} analogicznie do komendy dźwięku zamykania drzwi dodajemy "x (S.L.opoznienie_drzwi)" (gdzie x to ilość timegap'ów, po których ma zadziałać otwarcie drzwi - dla braku opóźnienia dajemy 0, lub pomijamy cały ten wpis).
Pod {else} dodajemy taki sam wpis jak powyżej - będzie to opóźnienie zamknięcia drzwi. Cały wpis podany wcześniej po tej zmianie powinien wyglądać tak:
Kod:
{macro:trg_bus_doorfront0}
(L.L.doorTarget_0) ! (S.L.doorTarget_0)
{if}
(T.L.ev_doortriggeropen_0)
0 (S.L.opoznienie_drzwi)
{else}
(T.L.ev_doortriggerclose_0)
7 (S.L.opoznienie_drzwi)
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{end}
Krok 3.
Na sam koniec do pliku varlist dodajmy dwa wpisy:
opoznienie_drzwi
dzwonek_drzwi
W pliku dźwięku możemy też przypisać dzwonek zamykania drzwi do komendy "dzwonek_drzwi". Działa on przed zamknięciem, wystarczy, by dźwięk dzwonka był długości opóźnienia. UWAGA! 1 Timegap nie jest równy 1 sekundzie. Trzeba to wyczuć na oko.