Witaj na Forum! Zapraszamy do rejestracji lub zalogowania. Stwórz konto  


Skryptowa funkcja visible - parametry

#1
(Ten post był ostatnio modyfikowany: 25.02.2014, 16:48 przez siwy_Snk.)

Wydłubałem sobie taki prymitywny skrypt (oparty na skrypcie Pokaż/Ukryj kierownicę - toggle visible), który działa z powodzeniem...
Kod:
{trigger}
(L.L.zmienna_visible) ! (L.L.zmienna_visible)
{end}
...później ten skrypt nieco skomplikowałem poprzez wprowadzenie pętli, jednakże pomimo poprawności składniowej (mam nadzieję, że nie rypnąłem się nigdzie) skrypt nie chce działać. Gwoli wyjaśnienia: skrypt ma za zadanie obsługiwać 3 przypadki użycia: jeśli obraz z obu kamer wyłączony (oba obiekty (ekrany) cam2 i cam3 pochowane) -> pokaż widok z kamery cam2; jeśli w danym momencie cam2 jest aktywne -> ukryj cam2 i pokaż cam3; jeśli cam3 aktywne -> ukryj cam3 = oba obiekty z widokami kamer ukryte czyli powrót do pierwszej instrukcji warunkowej).
Kod:
{macro:camera_toggle}
    (L.L.cp_cam2_visible) 0 = (L.L.cp_cam2_visible) 0 = &&
    {if}
                (L.L.cp_cam2_visible) ! (S.L.cp_cam2_visible)
        {endif}
    (L.L.cp_cam2_visible) 1 =
        {if}
                (L.L.cp_cam2_visible) ! (S.L.cp_cam2_visible)
                (L.L.cp_cam3_visible) ! (S.L.cp_cam3_visible)
        {endif}
        (L.L.cp_cam3_visible) 1 =
        {if}
                (L.L.cp_cam3_visible) ! (S.L.cp_cam3_visible)
        {endif}
{end}

Z moich doświadczeń wynika, iż widoczność elementu można przełączyć poprzez użycie bramki NOT (!), co działa z powodzeniem. Schody zaczynają się jednak w momencie, gdy przed użyciem instrukcji z bramką sprawdzam jakie wartości aktualnie przyjmują zmienne w sytuacji, w której nastąpiło wywołanie. Wydaje mi się więc, że pomimo deklarowania w cfg dla [mesh] atrybutów z wartościami
Kod:
[visible]
cp_cam2_visible
1 (lub 0)
funkcja nie przyjmuje wartości zerojedynkowych (0 lub 1), a... no właśnie... boolean powinien przejść sprawdzając w instr. warunkowej czy wartość = 1 v = 0, stąd nie mam pojęcia, czy OMSI obsługuje jakiś "swój własny" boolean, czy przyjmuje jakieś, wbrew logice innych języków programowania, inne wartości.

I tu moje pytanie, rozgryzał ktoś już podobną sytuację? Wie ktoś jak sprawdzić jaką obecnie zmienna przechowuje wartość (obiekt widzialny czy ukryty)?
Odpowiedz




Użytkownicy przeglądający ten wątek:
1 gości