
Todo el que me conoce sabe de mi pasión por hacer que los prims de madera cobren vida. Puedo pasar horas y horas creando scripts que hagan cientos de cosas, investigando, creando, divirtiéndome con ellos.
En los cursos de programación que a lo largo de los años he dado dentro de Second Life (prometo retomar algunos de ellos) siempre he comenzado diciendo que, programar, no es difícil, solo se requiere paciencia, ilusión y un poquito de cabezonería.
Y antes de seguir escribiendo este tutorial, me gustaría dejar dicho algo: Todo el mundo puede llegar a crear Scripts simples que puedan hacer cosas esenciales en Second Life. Y lo más importante de todo, nunca se termina de aprender, cada Script, cada reto, cada proyecto, es una nueva aventura.
Bien, dicho esto, quiero proponeros un reto: ¡Vamos a escribir nuestro primer Script!
El objetivo de estos mini tutoriales no es mas que ir muy poco a poco, y con ejercicios no muy complejos, adentrando al residente en el mundo de la programación de una manera fácil y amena. Porque solo creando y experimentando con pequeños proyectos, podemos divertirnos y seguir aprendiendo.
En este primer tutorial voy a hablaros de la manera más simple y clara posible. Voy a omitir lenguaje muy técnico (poco a poco os iré enseñando cómo se llama cada cosa en programación) ya que como antes he dicho, el objetivo principal es el de haceros la experiencia lo más satisfactoria posible.
¿Comenzamos a picar código?
Lo primero que debemos saber, es que el lenguaje de programación de Second Life se encuentra estructurado de la siguiente manera:
- Estados
- Eventos
- Funciones
Estados:

Siempre debe de haber un estado por defecto en el script, y ese debe llamarse: default (ver línea 0 de la imagen de cabecera).
Un Script puede contener muchos estados, por ejemplo, si queremos construir una bombilla que se encienda o se apague, el script, puede llevar dos estados: Encendido y Apagado.
Como hemos dicho anteriormente, todo Script debe tener un estado por defecto, este es el estado por el que el script comenzara siempre. Los estados siempre deben comenzar por una «{» y terminarse con «}» (ver imagen de cabecera, líneas 2 llave de apertura, línea 2, llave de cierre 26) todo lo que se encuentre entre esas dos llaves, formara parte del estado por defecto. Por el momento, quédate solo con esto, más adelanta hablaremos más sobre los estados.
Eventos:

La mejor manera de aprender bien que es un evento y como funciona, es imaginarlo como un bloque de código que el prim ejecuta cuando se interactúa con él. Así pues, si hacemos click sobre el prim, se activara el evento correspondiente al click sobre un prim. Si chocamos nuestro avatar sobre el prim, se ejecutara el código del evento choque, etc.. Si le ponemos nombre a estos eventos, el evento que se encarga de reproducir código cuando se haga click sobre él , se llama «touch_start» (línea 15 de la imagen 3), y el evento que ejecuta el código cuando nuestro avatar se choqua contra él , se llama: «collision_start» (línea 21 de la imagen 3)
Cómo veis, cada evento también tiene como norma, el tener una llave de apertura «{» y una de cierre «}» volvemos a recordar que, siempre se debe de seguir esta norma ya que de lo contrario el script nos arrojara un error.
Como lo estados, todo lo que se encuentre dentro de las llaves de apertura y cierre de los eventos, será el código que se ejecutara, cuando se actúe sobre el evento seleccionado. Vamos a quedarnos aquí por hoy.
Funciones:

La funciones, son las verdaderas encargadas de darles vida a los prims, hay muchísimas funciones, desde las que hace hablar al prim (llSay), las que provocan el cambiar de color al prim (llSetcolour), etc..
Cosas que debemos comenzar a saber de las funciones. Su construcción siempre suele ser la misma, NOMBRE DE LA FUNCIÓN – PARAMETROS QUE SE LE PASA A LA FUNCIÓN
Imaginemos que nuestra intención es hacer hablar al prim, bien, para eso necesitaremos usar la función llamada llSay, después debemos decirle a la función, datos importantes para su funcionamiento (recordamos que estos datos se llaman parámetros) En este caso la función necesita de dos parámetros importantes: Canal de comunicación por el que el prim hablará y, el mensaje que el prim dirá.
En este caso, si vemos la construcción de la función que tenemos en la Imagen 4, el canal por el que el prim hablará es el 0 (canal general) y el texto que dirá estará entre comillas, en este caso «¡Script en funcionamiento!» (¿quieres saber cómo llamamos en programación a los textos: Strings)
Otra función que observamos en el script es «llSetColor» Esta función es la encargada de cambiar el color al prim. Como todas la funciones, se necesita de unos parámetros, esta vez los parámetros serán: Color y caras del prim dónde cambiará el color.
Los colores se expresan entre estos símbolos < > separados por comas y en formato RGB ( más adelante hablaremos de todo esto con más profundidad, pero si quieres jugar mientras tanto con ellos, te dejo en este enlace todos los colores y sus equivalencias en RGB ) Como decíamos el primer parámetro es el color, y el segundo parámetro es la cara en la que el prim cambiara de color. Podemos elegir entre la cara deseada (1,2,3,4) o utilizar el valor ALL_SIDES para indicar a la función que deberá rellenar todas las caras del mismo.
Comentarios y Colores dentro del Script :

Podemos comprobar que todos los Scripts son muy coloridos, y esto tiene un sentido. Cada parte del código del script, utiliza un color identificativo. Fijaros que las funciones tienen uno, los estados otros, los textos otro, etc..
Si cada uno de ellos, en su construcción, no tomara su color identificativo, seria una señal de que el código está mal escrito.
Llegamos a los comentarios dentro de los Scripts:
Cuando un programador está escribiendo (Construyendo) un Script, puede necesitar de anotaciones dentro de ellos, que les guíen a él o a otros programadores sobre que hace cada cosa y por qué, digamos que es como si escribiéramos en los márgenes de un libro o subrayásemos cosas importantes dentro de una página.
Estos comentarios nunca afectan al script y siempre debe ir seguidos de doble barra «//»
Espero que llegados aquí, tengáis una leve idea de qué conforma un script, así como conocimientos muy básicos de la estructura del mismo. Este es solo un texto introductorio a todo lo que está por llegar.
Mi consejo es que crees un Script, borréis todo su contenido predefinido (cuando creáis un Script, siempre hay un código ejemplo en él) y copies el código de la foto de cabecera. Si no funciona, revisar el código, recuerda que cada espacio, cada comilla y cada llave importa, fíjate muy bien. Juega cambiando cada parte del código, los textos por ejemplo, o los colores del prim. Experimenta.
No dudes en utilizar los comentarios del blog o de Facebook para expresar tus dudas o preguntas, entre todos, las resolveremos y tu Script funcionará, no tegas la menor duda.
También tienes a tu disposición el grupo de la comunidad dentro de Second Life llamado «Terraprims» y nuestro servidor de Discord.
Un saludo a tod@s familia, nos vemos Inworld.