quinta-feira, 19 de agosto de 2010

LSL - Linden Scripting Language



O Linden Scripting Language Guide é um texto de 2003 com mais de 100 páginas, também com documentação da LSL.
O LSL wiki e o LSL Portal são dois wikis com documentação sobre a LSL, que são atualizados com frequência.
Comecei a percorrer o LSL Portal.

LSL a linguagem trabalha com estados e eventos. Um exemplo básico, com um estado (default) e um evento (touch) seria:
default
{
touch_start(integer total_number)
{
llSay(0,”Hello World”);
}
}
Quando o objeto for tocado, ele dirá, no canal 0 (do chat público): “Hello World”.
No mínimo, um script tem que ter um estado, que pode ser o default, ou outro qualquer (começando sempre com state_).
// é o símbolo utilizado para inserir comentários no código
Selecionando um objeto, você pode também parar os seus scripts: TOOLS>SET SCRIPTS TO NOT RUNNING IN SELECTION, e depois fazer os scripts funcionarem de novo para o objeto: TOOLS>SET SCRIPTS TO RUNNING IN SELECTION.
Além de estados e eventos, a LSL trabalha também com funções, que vêm dentro dos eventos.
Vejamos outro exemplo de código básico:
default
{
state_entry()
{
llSay(0, “Hello, Avatar!”);
}
touch_start(integer total_number)
{
llSay(0, “Touched.”);
}
}
O estado default tem 2 eventos, state_entry e touch_start. Ambos esses eventos têm a função llSay () dentro deles. As funções começam sempre com ll e, nos parênteses, recebem argumentos ou valores. Se você passa por cima da função, no editor, você verá quais parâmetros ou valores são esperados, e como a função se comportará.
No exemplo abaixo, há 2 estados, sendo que cada toque muda de um estado para outro, mudando também as cores do objeto:
default
{
state_entry()
{
llSay(0, “turning on!”);
llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES); // todos os lados do objetos tornam-se o mais claro possível
}
touch_start(integer total_number)
{
state off; // o script passa para o state off
}
}
state off
{
state_entry()
{
llSay(0, “turning off!”);
llSetColor(<0.0, 0.0, 0.0>, ALL_SIDES); // os lados do objeto tornam-se o mais escuro possível
}
touch_start(integer total_number)
{
state default;
}
}
Se você estiver testando scripts, pode usar a função: llWhisper(0,”Escreva alguma coisa aqui”); O que você escrever será lido apenas a 15 metros de distância do seu objeto - llSay () a 30 m. llShout () 60 m. llOwnerSay( ) não usa canal e é ouvida apenas por você, o dono do objeto. llSetText( ) uma msg totalmente silenciosa;

A ITLP - Ivory Tower Library of Primitives tem 4 módulos com diversas aulas sobre construção de objetos no SL.

Abaixo você encontra um resumo das estações de cada módulo:

Modulos 

ITLP 

Module 1 - The Basics of Building

Module 2 - Prim Editing

Module 3 - Primitive Features - Flexi-prims and Light

Module 4 - Building Techniques
Related Posts Plugin for WordPress, Blogger...