* Criando Script básico
Autor: Suely Turbo | Publicado: 2011-11-01T01:22:00-02:00

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Para fazer experiências com scripts, se faz necessário ter um terreno onde se permita a execução dos scripts, caso você não tenha um terreno próprio use uma sandbox( área publica para criação de objetos).
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Comece criando um prim&nbsp;qualquer, selecione o objeto recem criado e clique na aba conteúdo e, em seguida no botões "Novo script".

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; De um duplo clique no item recém criado (New script). A janela do script se abrirá.
&nbsp;Repare que o script já possui um código-fonte, é uma espécie de código mínimo o qual você pode usar como ponto de partida para o seu próprio código.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dois botões são importantes nesta janela.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Salvar - Se não houver erro ele será salvo, caso contrário lhe indicará a linha e a coluna onde se encontra o erro. Procure salvar cada passo, primeiro para evitar a perda do trabalho e segundo para descobrir o erro e corrigi-lo.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Resetar - Restaura o estado inicial,&nbsp;é como se você desligasse e religasse o script, ele começará do zero de novo.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;ESTADOS

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Um script determina os estados do objeto. Se você quer que um objeto possa girar ou ficar parado, você terá de determinar dois estados nele.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;O script que você abriu já vem com um esqueleto montado. Todos os scripts devem ter um estado inicial obrigatório. o "default (padrão). O script sempre começará a ser executado a partir deste estado.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Geralmente, coloca-se uma ação por linha dentro de um script - o Second Life sabe que uma ação acabou quando encontra um ponto-e-virgula. 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Observe o código-fonte a seguir:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; state_entry()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11Say(0, "Script iniciando.");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uma ação, chamada 11Say, foi executada, e sabemos onde ela termina por causa do ponto-e-virgula. Este tipo de ação é dominada função.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As chaves indicam blocos de instruções - tudo o que estiver entre as chaves pertence ao estado default.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; O código-fonte também poderia ter sido escrito desta maneira:

default{state_entry(){11Say(0, "Script iniciando.");}}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ambos os códigos dizem a mesma coisa e são executados da mesma maneira, mas qual dos dois é mais legível?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A LSL ignora os espaços em branco e as mudanças de linha, então você está livre para formatar o seu código fonte do jeito que quiser. Portanto recomendo a formatação em linhas por ser a mais legível.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EVENTOS


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uma vez inserido um script em um objeto, este objeto se colocará em posição de espera, aguardando o acontecimento de um evento que lhe interesse. Uma vez ocorrido um evento do seu interesse ele escuta uma serie de instruções relacionadas aquele evento.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Repare no comando "state_script" no código fonte, este é o nome de um evento, mais especificamente o evento de carregamento do script. Este evento é disparado sempre que o script é carregado: no entanto para que ele possa ser acionado, você deve lista lo dentro de um estado.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vamos, então modificar um pouco o código: 

default

{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; state_entry()
&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11Say(0, "Script iniciando.");
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; touch_start(integer num_agentes)
&nbsp;&nbsp;&nbsp;&nbsp; {
11Say(0, "Ei, cuidado com esta mão!");
&nbsp;&nbsp;&nbsp;&nbsp; }
}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Acabamos de adicionar mais um evento - o toque de um ou mais avatares no objeto que contem o script. Neste caso, o evento apenas dispara uma mensagem na tela mas a sequência de instruções pode ter o grau de complexidade que você quiser.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Espero ter ajudado você a se divertir. &nbsp;Em uma próxima oportunidade daremos mais exemplos.