2 janvier 2011

Un outil onliner

Avant d'aller plus loin, je vous souhaite à tous une bonne et heureuse année nouvelle.
Plus paisible, calme et zen que la précédente.

Mes bonnes résolutions 2011 : et si je refaisais un ou deux (voire même trois) petits tutos de LSL ??

Donc commençons l'année par mettre en pratique les bonnes résolutions : un petit tuto pour la réalisation d'un onliner tout simple....

Un quoi ?? Un objet qui dit si quelqu'un est connecté ou non. On en voit souvent dans les boutiques qui nous disent si le propriétaire est là ou non.

Comme toujours le script sera simple avec juste cette fonctionnalité... A vous de l'améliorer en ajoutant plein d'autres choses....

Objectifs : un objet qui dit si une personne est connectée et passe au vert dans ce cas... rouge sinon, avec un message au-dessus si des fois on n'avait pas compris.

Fonctions qui seront utiles :

Marche a suivre :

  1. Créer une prim, dans mon cas une sphère
  2. Dans l'onglet inventaire : nouveau script
  3. Ouvrir et saisir le code suivant. Les explications en dessous...



Script :

vector ROUGE = <1.0,>;
vector VERT = <0.0,>;
float delay = 10.0;

key avatar = "XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; //le UUID de la personne
string name "Deirdre"; // le nom de la personne
key query;
integer etat= 0; // 0 : offline ---- 1 : online

default{

state_entry()
{
llSetColor(ROUGE, ALL_SIDES );
llSetText( name +"\nOFFLINE", <1.0,1.0,1.0>, 1.0);
llSetTimerEvent(delay);
}

timer(){
query = llRequestAgentData(avatar, DATA_ONLINE);
}

dataserver(key queryid, string data){
if (query == queryid ){
if (data == (string)1) {
llSetColor(VERT, ALL_SIDES );
llSetText(name +"\nONLINE", <1.0,1.0,1.0>, 1.0);
etat = 1;
}
else {
llSetColor(ROUGE, ALL_SIDES );
llSetText(name +"\nOFFLINE", <1.0,1.0,1.0>, 1.0);
etat = 0;
}
}
}

}

analyse du code :
  • ROUGE et VERT : deux constantes pour les couleurs de la boule
  • delay : le script lance un vérifie si la personne est online ou non toutes les 10.0 sec... changer la valeur pour modifier ce temps. Un temps trop court crée plus de lag.
  • avatar : la clé, le UUID de l'avatar sur lequel le script est basé
  • name : son nom
  • query : variable qui sert pour le dataserver
  • etat : vaut 0 si la personne est offline et 1 sinon
A l'entrée dans le script, on fixe la couleur et le texte : rouge et offline. Et on lance le timer. Chaque fois que le timer se déclenche, on fait une requête de online sur le dataserver. et On modifie l'affichage en conséquence.
Et voila, c'est tout pour aujourd'hui.

Je suis pas là

Je suis là

Aucun commentaire: