Strefa OMSI

Pełna wersja: Kostki dźwiękowe - wyzwalanie dźwięku w przedziale czasowym
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Witam
A więc krótko i na temat. Niektórzy zapewne wiedzą co to są kostki dźwiękowe także problem odnosi się właśnie ich. Chciałbym ustawić sobie słyszalność danego dźwięku na mapie o odpowiedniej porze. Przypuszczam, że trzeba "rozebrać" tą kostkę lub jej plik dźwiękowy i edytować, a więc tutaj mogę zadać pytanie, co konkretnie muszę zrobić - dajmy na to - aby pewne odgłosy było słychać wyłącznie w nocy, a inne zaś nad ranem?

Pozdrawiam

/ Pozwoliłem sobie edytować tytuł na bardziej precyzyjny. - skawek /
Wystarczy dołączyć odpowiedni skrypcik, wykorzystując zmienną czasu (liczoną w sekundach od północy). Jeśli chcemy, by dana kostka była słyszalna od piątej do ósmej na przykład, skrypt o nazwie soundcube_kogut.osc w podkatalogu Script wygląda tak:

Kod:
{init}
    
    0 (S.L.odtworz_koguta)
    
{end}

{frame}    
    
    (L.S.Time) 18000 >
    (L.S.Time) 28800 <  &&
    {if}
       1 (S.L.odtworz_koguta)
    {else}
       0 (S.L.odtworz_koguta)
        
   {endif}
{end}

Poza tym trzeba utworzyć plik ze zmienną, która pojawiła się w skrypcie, również w tym podkatalogu, przykładowo będzie to soundcube_kogut_varlist.txt a w nim umieszczamy:
Kod:
odtworz_koguta

Do .sco należy dołączyć deklarację tego skryptu i pliku, na przykład:
Kod:
[script]
1
script\soundcube_kogut.osc

[varnamelist]
1
script\soundcube_kogut_varlist.txt

Zdaje się, że w konfiguracyjnym pliku dźwiękowym, trzeba dopisać jeszcze [conditionSingle] i ma wyglądać na przykład tak:

Kod:
[sound]
dzwiek_koguta.wav
0.6

[3d]
0
0
0
30

[conditionSingle]
odtworz_koguta
1
1

Powinno działać, jeśli nie - no to jeszcze sprawdzę, bo nie mam siły przetestować dzisiaj ;)
A gdybym chciał żeby dźwięk był wyzwalany konkretnie o 4.43 później o 12.16. Da się ?
Oczywiście, że tak, tylko w skrypcie musisz zmienić warunek pojawiania się dźwięku. Zatem bierzesz z posta skawka varlist, wpisy do .sco i plik konfiguracji dźwięku, natomiast skrypt wyglądałby tak:

Kod:
{init}
    
    0 (S.L.odtworz_koguta)
    
{end}

{frame}    
    
    (L.S.Time) 16980 =
    (L.S.Time) 44160 =  ||
    {if}
       1 (S.L.odtworz_koguta)
    {else}
       0 (S.L.odtworz_koguta)
        
   {endif}
{end}
Co odpowiada za zasięg słyszalności ? bo może tego nie ustawiłem, błędu nie wywala. Ale coś nie dźwięczy.
Jakby wyglądał skrypt z pięcioma punktami godzinowymi ?
Problem może być w tym że skrypt działa tylko w określonej sekundzie podanej w skrypcie. Dla pięciu wartości trzeba by było obliczyć odpowiednią sekundę doby i dodać linijkę definiującą
odczyt zmiennej | czas w sekundach | znak równości | zaznaczenie bramki logicznej OR
(L.S.Time) XXXXX = ||

Z tym że tak jak napisałem, prawdopodobnie dźwięk odtwarza się tylko o sekundzie podanej w skrypcie, przyjrzę się temu jutro wieczorem.
W dalszym ciągu nic. Wczoraj próbowałem jeszcze coś zrobić, dodałem linkę sound. i dźwięk się pojawił ale jakby ktoś pause/play non stop naciskał, a wychodząc do menu dzwiek się otworzył. Ale to i tak niezależnie od godziny.
Oczywiście, że skrypt się odtwarza tylko w sekundzie a nawet mniej o podanych godzinach, trzeba zrobić dwa małe zakresy czasowe czyli np
Kod:
(L.S.Time) 16980 >
    (L.S.Time) 16700 < &&
    (L.S.Time) 44160 >
    (L.S.Time) 44180 < && ||

gdzie różnica od pierwszej liczby do drugiej to czas trwania wyzwalacza. By dodać kolejne zakresy czasu to po prostu dodawać po takich segmentach ||

Kod:
(L.S.Time) x >
    (L.S.Time) x+y < && ||
Odtwarza o wybranych godzinach, ale jest jedno ale. Gdzie mam dać tą linijkę (T.L.sound) ?
Nigdzie, nikt nie wspominał nawet o czymś takim;)
Stron: 1 2
Przekierowanie