LAS IDEAS COMPARTIDAS, NO LLEGAN AL OLVIDO

viernes, 26 de febrero de 2010

Scripts Tema 8

8- DISCRECIÓN O INDISCRECCION EN EL CHAT, TU ELIGES (Funciones de chateo)

En este tema vamos a explicar un poco de teoría sobre las funciones de chat. Es muy importante asimilar correctamente que son los canales de chat, pues más adelante nos servirán para hacer que los prims se intercomuniquen sin molestar a los demás avatares.

llWhisper (integer channel, string text);

llSay (integer channel, string text);

llSout (integer channel, string text);

llRegionSay (integer channel, string text);

Son practicamente la misma función. Lo único que las diferencia es la distancia que alcanzará el mensaje, si lo leerán en su chat los avatares más próximos o también los que estén más alejados. También comparten la variable integer channel que corresponde al canal de chat por el que se desea que se lea el mensaje.

LlOwnerSay (string text)

Esta función no tiene en cuenta el canal, ya que el mensaje solo lo recibirá el dueño del prim que lo emite. Esté donde esté dentro de Second Life.


El canal por el que se emiten los mensajes de chat por defecto es el 0. Este canal es el público. Todo el mundo puede leer lo que se dice por el, dependiendo de la distancia a la que esté el emisor del mensaje, y cuál delas funciones de chat estemos empleando.

Así una función de chat normal sería:

llSay (0, “Hola Avatar!!);

Pero ese 0 puede ser sustituido por otro numero cualquiera. LSL admite millones de canales.

llSay (856, “Hola Avatar!!);

Os preguntaréis para qué queremos que no salga un mensaje por el canal público. Si nadie lo puede leer no parece tener sentido. En todo caso para que el dueño del objeto se entere si sucede un evento en este. La respuesta es que todas las cosas complejas que veis por SL están intercomunicándose entre ellas. Y para no molestar ni interferir en otros objetos, los prims que lo constituyen “se hablan y escuchan” literalmente.

Si diseñamos por ejemplo una lámpara de techo con unos prims y un interruptor en la pared con otros, en la lámpara meteremos el script para que se encienda y apage la luz, además de las instrucciones para que escuche la orden del interruptor; mientras en el interruptor meteremos la orden de que ante el evento Touch, ordene a la lámpara que se encienda. Así de sencillo. Los canales privados son las “correas de transmisión” ocultas a nuestros ojos que intercomunican las cosas en SL.

Por último tenemos esta otra función de chateo.

llInstantMessage (key id, string text);

Es parecida a LlOwnerSay (string text). Manda el mensaje a el prim o el avatar que tenga esa key.

Vamos con un sencillo ejercicio con el cual obtendremos la clave de nuestro avatar, única e intransferible, de forma privada. Sólo la podrás leer tú aunque el mensaje salga en el chat. Esto conviene que sea a sí por seguridad. Dicen que si un buen scripter malintencionado se hace con la key de un avatar puede robarle.


En este ejercicio almacenamos la key del avatar que toca el prim en miclave

Reservamos un dato string para convertir ese dato a texto en miclaveentexto

Recogemos la clave del avatar que toca mediante la función llDetectedKey(0); y la almecenamos en miclave

Almacenamos esa clave en forma de cadena se texto en mitextoenclave de la siguiente manera: miclaveentexto = (string) miclave; para convertir otro tipo de datos que no son texto en texto se hace así, precediendo ese dato de (string) de otro modo no podríamos usar ese dato en funciones de chateo.

Por último rellenamos los parámetros de la funcion llInstantMessage con un dato key (el receptor del mensaje), y otro string (el texto que se va a enviar) separados por una coma.

Fuente: Fritxitin Martinek para Creasl

No hay comentarios:

Publicar un comentario