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”);
}
}
{
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!”);
}
{
state_entry()
{
llSay(0, “Hello, Avatar!”);
}
touch_start(integer total_number)
{
llSay(0, “Touched.”);
}
}
{
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
}
{
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; // 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
}
{
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;
}
}
{
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
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 2 - Prim Editing
Module 3 - Primitive Features - Flexi-prims and Light
Module 4 - Building Techniques