Linden Scripting Language raz jeszcze

Linden Scripting Language (LSL) nie jest taki trudny, jak by się mogło wydawać. Proste rutyny można pisać po kilku godzinach, szczególnie gdy się wie skąd wziąć do nich części składowe, czyli użyteczne kawałki kodu. W tzw. ‘bibliotece’ inwentarza znajdziemy ich kilka, a inne możemy pobrać z napotkanych działających przedmiotów, które robią to, co wydaje nam się interesujące lub przydatne. W ten sposób działał Wlodek Barbosa majsterkując przy swoich klockach ‘wirtualnie rozszerzonych’ (PAV).

Poniżej jeden bardzo prosty przykład. Ten skrypt jest wbudowany w każdy ‘fonetycznie rozszerzony’ obiekt Wlodka. W reakcji na dotknięcie obiektu przez awatara (czyli kliknięcie myszą na ekranie) generuje on dźwięk i kilka linii tekstu. Ten dźwięk to nazwa przedmiotu, zaś tekst zawiera: (a) transkrypcję fonetyczną, (b) definicję słowa, (c) przykładowe zdanie, (d) pytanie fonetyczne. Zobaczmy jak to się dzieje…

default
{
state_entry()
{
llSetText(llGetObjectName(), <1,1,1>, 1.0);
}
touch_start(integer num_detected)
{
llPlaySound(llGetInventoryName(INVENTORY_SOUND, 0), 1);
llInstantMessage(llDetectedKey(0), “/rʌg/”);
llInstantMessage(llDetectedKey(0), “A piece of thick cloth or wool that covers part of a floor, used for warmth or as a decoration.”);
llInstantMessage(llDetectedKey(0), “‘A Persian rug will add colour and interest to your hallway'”);
llInstantMessage(llDetectedKey(0), “What is the vowel like in <rug>?”);
}
}

Komenda [llSetText(llGetObjectName] znajduje w przedmiocie jego nazwę (zapisaną tam przez twórcę przedmiotu), robi z tej nazwy kawałek tekstu i wyświetla go nad przedmiotem: w tym przypadku rug, czyli dywan. Po dotknięciu (touch_start) skrypt najpierw odtwarza dźwięk (llPlaySound) pobierając nazwę pliku audio z listy zawartości przedmiotu (llGetInventoryName). Następnie kanałem prywatnym, czyli za pomocą Instant Message (llInstantMessage) skrypt podaje awatarowi, który dotknął przedmiotu (llDetectedKey), wpisany przez twórcę tekst, np. “A piece of thick cloth or wool that covers part of a floor, used for warmth or as a decoration”. I tyle! Ten kawałek kodu sprawia, że wędrujący i dotykający awatar może się nauczyć całkiem sporo o obcojęzycznych nazwach napotykanych przedmiotów. Czy nie byłoby fajnie, gdyby taką funkcję można włączyć w pierwszym życiu? Próbuje się to robić obecnie za pośrednictwem takich urządzeń, jak google glasses, ale to zupełnie inna bajka :-)

 

No comments yet.

Leave a Reply