Strefa OMSI

Pełna wersja: Opóźnienie zamykania drzwi
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Mógłby mnie ktoś nakierować na opóźnienie zamykania drzwi? Chodzi mi o dokładne wytłumaczenie gdyż męczę się z tym już dłuższy czas i nadal nie rozumiem. Informuję także, że ustawiam to w modelu, w którym nie ma możliwości przełożenie skryptu z Merca Juliana i jakiegokolwiek innego modelu.
Pozdrawiam :)
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):
{macro:Door1_Calc}
(L.L.opoznienie_drzwi) 0 <
(L.L.doorTarget_1) 1 = ||
{if}
(L.L.dzwonek_drzwi) 1 =
{if}
0 (S.L.dzwonek_drzwi)
{endif}

(C.L.electric_doors)
{if}
(L.L.doorTarget_1)
{if}
(L.L.door_1) (F.L.door_1_opn_speed) (S.L.doorMaxSpeed_1)
{else}
(L.L.door_1) (F.L.door_1_cls_speed) (S.L.doorMaxSpeed_1)
{endif}

(C.L.fdoor_acc) (S.L.doorAcc_1)

(L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
{else}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
(L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
{if}
l0 (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
{else}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
0 (S.L.doorSpeed_1)
{endif}
{endif}
{else}
(L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
(L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
{if}
l0 (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
0 (S.L.doorSpeed_1)
{endif}
{endif}
{endif}
(L.L.door_1) 1 >
{if}
(T.L.ev_doorhitopen_1)
1 (S.L.door_1)
(L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
{else}
(L.L.door_1) 0 <
{if}
(T.L.ev_doorhitclose_1)
0 (S.L.door_1)
(L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
{endif}
{endif}
{else}
(L.L.opoznienie_drzwi) (L.S.Timegap) - (S.L.opoznienie_drzwi)
{endif}

{end}


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.
Ok, działa, ale musiałem zmienić "opoznienie_drzwi" na "door_warnung" bo miałem błąd " 'drzwi)' ist kein..." :)
Ale jak już przypiszę opóźnienie zamykania do drugiej połówki drugich drzwi (door3) i chcę by było też w pierwszej połówce drugich drzwi (door2), która ma ten sam doortarget co druga połówka drugich drzwi (czyli doorTarget_23) to gra crashuje się (zughfreissen von adresse...).
Jestem już blisko rozwiązania moich udręk, dlatego bardzo proszę o dalszą pomoc :). Jak coś mam dodać to proszę pisać ;)
A door2 i door3 to osobne drzwi uruchamiane osobnymi komendami czy jedną? Musisz gdzieś jakąś literówkę robić, bo jak działa normalnie skrypt, to nie ma możliwości, żeby to nie działało.
door2 i door3 to drzwi uruchamiane jedną komendą (bus doorfront2 na klawiaturze). O literówce nie ma mowy, żywcem kopiowałem z door3 do door2.
No to nie mam pojęcia. Poproszę standardowo: skrypt, plik varlist, logfile i treść błędu - popatrzę w to.
Najważniejsza część skryptu "door.osc" (całość jest strasznie długa)
Kod:
{macro:Door2_Calc}
    (L.L.door_Warncounter) 0 <
    (L.L.doorTarget_23) 1 = ||
    {if}
        (L.L.door_Warnung) 1 =
        {if}
            0 (S.L.door_Warnung)
    {endif}
    (C.L.electric_doors)
    {if}
        (L.L.doorTarget_23)
        {if}
            (L.L.door_2) (F.L.door_2_opn_speed) (S.L.doorMaxSpeed_2)
        {else}
            (L.L.door_2) (F.L.door_2_cls_speed) (S.L.doorMaxSpeed_2)
        {endif}

        (C.L.bdoor_acc) (S.L.doorAcc_2)

        (L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
        {if}
            l0 /-/ (L.L.doorMaxSpeed_2) <
            {if}
                (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
            {else}
                (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
            {endif}
            (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
        {else}
            (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
            {if}
                l0 (L.L.doorMaxSpeed_2) <
                {if}
                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                {else}
                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                {endif}
                (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
            {else}
                0 (S.L.doorSpeed_2)
            {endif}
        {endif}
    {else}
        (L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
        {if}
            l0 /-/ (L.L.doorMaxSpeed_2) <
            {if}
                (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
            {endif}
            (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
        {else}
            (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
            {if}
                l0 (L.L.doorMaxSpeed_2) <
                {if}
                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                {endif}
                (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
            {else}
                0 (S.L.doorSpeed_2)
            {endif}
        {endif}
    {endif}

    (L.L.door_2) 1 >
    {if}
        (T.L.ev_doorhitopen_2)
        1 (S.L.door_2)
        (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
    {else}
        (L.L.door_2) 0 <
        {if}
            (T.L.ev_doorhitclose_2)
            0 (S.L.door_2)
            (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
        {endif}
    {endif}
    (L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
{end}

{macro:Door3_Calc}
    (L.L.door_Warncounter) 0 <
    (L.L.doorTarget_23) 1 = ||
    {if}
        (L.L.door_Warnung) 1 =
        {if}
            0 (S.L.door_Warnung)
    {endif}
    (C.L.electric_doors)
    {if}
        (L.L.doorTarget_23)
        {if}
            (L.L.door_3) (F.L.door_3_opn_speed) (S.L.doorMaxSpeed_3)
        {else}
            (L.L.door_3) (F.L.door_3_cls_speed) (S.L.doorMaxSpeed_3)
        {endif}

        (C.L.bdoor_acc) (S.L.doorAcc_3)

        (L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
        {if}
            l0 /-/ (L.L.doorMaxSpeed_3) <
            {if}
                (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
            {else}
                (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
            {endif}
            (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
        {else}
            (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
            {if}
                l0 (L.L.doorMaxSpeed_3) <
                {if}
                    (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
                {else}
                    (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
                {endif}
                (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
            {else}
                0 (S.L.doorSpeed_3)
            {endif}
        {endif}
    {else}
        (L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
        {if}
            l0 /-/ (L.L.doorMaxSpeed_3) <
            {if}
                (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
            {endif}
            (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
        {else}
            (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
            {if}
                l0 (L.L.doorMaxSpeed_3) <
                {if}
                    (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
                {endif}
                (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
            {else}
                0 (S.L.doorSpeed_3)
            {endif}
        {endif}
    {endif}

    (L.L.door_3) 1 >
    {if}
        (T.L.ev_doorhitopen_3)
        1 (S.L.door_3)
        (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
    {else}
        (L.L.door_3) 0 <
        {if}
            (T.L.ev_doorhitclose_3)
            0 (S.L.door_3)
            (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
        {endif}
    {endif}
    {else}
    (L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
    {endif}

{end}

{macro:trg_ramp}

    (L.L.rampTarget) ! (S.L.rampTarget)
    {if}
        (T.L.ramp_roll_out)
    {else}
        (T.L.ramp_roll_in)
    {endif}
{end}

{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}

{macro:trg_bus_doorfront1}

    (L.L.doorTarget_1) ! (S.L.doorTarget_1)
    {if}
        (T.L.ev_doortriggeropen_1)
    {else}
        (T.L.ev_doortriggerclose_1)
    {endif}    
        (C.L.door_druckluft)
        {if}
        (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
        {endif}
{end}

{macro:trg_bus_doorback23}

    (L.L.doorTarget_23) ! (S.L.doorTarget_23)
    {if}
        (T.L.ev_doortriggeropen_2)
        0 (S.L.door_Warncounter)
    {else}
        (T.L.ev_doortriggerclose_2)
        7 (S.L.door_Warncounter)
        1 (S.L.door_Warnung)
    {endif}    
        (C.L.door_druckluft)
        {if}
        (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
        {endif}
{end}

{macro:trg_bus_dooraft}
    (L.L.bremse_halte_sw) ! (S.L.bremse_halte_sw)
    
    (L.L.bremse_halte_sw)
    {if}
        (T.L.ev_haltebremse_sw_an)
    {else}
        (T.L.ev_haltebremse_sw_aus)
    {endif}    
{end}

{macro:trg_bus_20h-switch}
    (L.L.door_20h_sw) ! (S.L.door_20h_sw)
    
    (L.L.door_20h_sw)
    {if}
        (T.L.ev_haltebremse_sw_an)
    {else}
        (T.L.ev_haltebremse_sw_aus)
    {endif}    
{end}

Plik "door_varlist.txt"
Kod:
door_0
door_1
door_2
door_3
doorTarget_0
doorTarget_1
doorTarget_23
doorSpeed_0
doorSpeed_1
doorSpeed_2
doorSpeed_3
doorMaxSpeed_0
doorMaxSpeed_1
doorMaxSpeed_2
doorMaxSpeed_3
doorMaxSpeed_0_norm
doorMaxSpeed_1_norm
doorMaxSpeed_2_norm
doorMaxSpeed_3_norm
doorAcc_0
doorAcc_1
doorAcc_2
doorAcc_3
doorRefl_0
doorRefl_1
doorRefl_2
doorRefl_3
bremse_halte
bremse_halte_sw
doorAftLastOpen
haltewunsch
haltewunschlampe
door_handsteuerung
door_haltewunsch_knopfdruck
door_kinderwagenwunsch
door_AI_timer
door_light_1
door_light_2
door_20h_sw
door_freigabe
door_Warnung
door_warncounter

ramp_button
ramp
cp_ramp_light
rampTarget
rampSpeed
rampAcc
rampMaxSpeed
rampRefl
ramp_rot_angle
cockpit_ramp_sw
rampTarget_in
rampTarget_out
ramp_lastpos

Log:
Kod:
====================
    Start logging
====================

Date: 2013-09-12
Time: 20:58:03

0 20:58:06 -  -     Warning:       Did not find texture file "30er_reihensiedlung01.bmp"!
1 20:58:06 -  -     Warning:       Did not find texture file "SD_Rad_v.bmp"!
2 20:58:06 -  -     Warning:       Did not find texture file "reifen.bmp"!
3 20:58:17 -  -     Warning:       Did not find texture file "path_car_1.bmp"!
4 20:58:19 -  -     Warning:       Did not find texture file "texture.tga"!
5 20:58:19 -  -     Warning:       Did not find texture file "Snow_1.bmp.001"!
6 20:58:22 -  -     Warning:       Cloudtype "-1" could not be found!
7 20:58:27 -  -   Error:           In situation file "maps\test\laststn.osn" there was an error in line 21!
8 20:58:30 -  -     Warning:       Did not find texture file "texture.tga"!
9 20:58:30 -  -     Warning:       Did not find texture file "Snow_1.bmp.001"!
10 20:58:31 -  -     Warning:       Cloudtype "-1" could not be found!
11 20:58:31 -  -     Warning:       Cloudtype "-1" could not be found!
12 20:58:35 -  -     Warning:       Did not find texture file "Kennz.bmp"!
13 20:58:36 -  -     Warning:       Did not find texture file "Kennz.bmp"!
14 20:58:36 -  -     Warning:       Did not find texture file "Kennz.bmp"!
15 20:58:36 -  -     Warning:       Did not find texture file "Kennz.bmp"!

Treść błędu:
[attachment=292]

Pozdtawiam :)
Hmmm... dziwne... ale wszystko wygląda pozornie dobrze. Mam pewien pomysł. Może nie będzie to "genialna porada wujka Sama", może już to robiłeś, ale warto sprawdzić. Jedyny błąd jaki znalazłem w logfile, to błąd otwarcia ostatniej sesji. Czasem po zmianach skryptowych nie da się załadować modelu z ostatniej sesji. Spróbuj załadować mapę na pusto, jeżeli wywali inny błąd, to właśnie ten błąd podaj razem z logfile.

Pzdr.
Znalazłem dodatkowe rozwiązanie dla modeli posiadających osobną komendę otwarcia drzwi. Jesli mamy 3 pary drzwi (przykład Neoplana 4016) to jeden skrypt opóźnienia drzwi dla dwóch różnych komend gryzie się ze sobą podczas wciśnięcia przycisku zamknięcia jednych drzwi, gdy drugie są "w trakcie" zamykania. Jest na to prosta rada, wystarczy rozgraniczyć skrypt opóźnienia dla każdej pary.
Jeśli mamy door_calc0, door_calc1, door_calc2, door_calc3, door_calc4 i door_calc5, to znaczy, że 0 i 1 to pierwsza para, 2 i 3 druga, a 4 i 5 to trzecia para. Dla każdej pary zmieniamy:
Kod:
(L.L.opoznienie_drzwi) 0 <
    (L.L.doorTarget_x) 1 = ||
    {if}
        (L.L.dzwonek_drzwi) 1 =
        {if}
            0 (S.L.dzwonek_drzwi)
        {endif}
na
Kod:
(L.L.opoznienie_drzwiY) 0 <
    (L.L.doorTarget_x) 1 = ||
    {if}
        (L.L.dzwonek_drzwiY) 1 =
        {if}
            0 (S.L.dzwonek_drzwiY)
        {endif}
oraz
Kod:
{else}
        (L.L.opoznienie_drzwi) (L.S.Timegap) - (S.L.opoznienie drzwi)
    {endif}
na
Kod:
{else}
        (L.L.opoznienie_drzwiY) (L.S.Timegap) - (S.L.opoznienie drzwiY)
    {endif}
Gdzie Y to numer pary drzwi.

Odpowiednie nazwy zmiennych również musimy przypisać w triggerach przełącznika, które są na dole całego skryptu. Tu zależnie od modelu może ich być dwa, a może być sześć. Musimy dobrze przeanalizować skrypt analogicznie do powyższej części i wprowadzić odpowiednie zmiany, czyli przykładowo w:
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}
Zmieniamy 0 (S.L.opoznienie_drzwi) na 0 (S.L.opoznienie_drzwi1) i tak dalej.

Oczywiście pamiętamy, by te zmiany również zaktualizować w pliku varlist.
Ok, odkryłem nowy błąd, jeśli mamy dwie pary drzwi i w dwóch zrobimy taki myk (mowa o SU10), to jeśli są otwarte drugie i trzecie i będziemy chcieli zamknąć drugie to będzie dłuższa przerwa zanim się zamkną, jeżeli klikniemy by zamykały się na raz nie występuje taki problem i nie występuje on też jak otwieramy same drugie drzwi. W czym problem?
PS. Zrobiłem tak jak w powyższym poście i to samo
Stron: 1 2
Przekierowanie