mercredi 6 février 2008

llEjectFromLand


La foction du jour, llEjectFromLand est assez explicite elle permet d'ejecter un avatar de son terrain.
En la combinant avec Sensor, nous avons fait notre petite alarme maison.
La fonction ne prends que un seul paramètre une Key qui est la personne qui doit etre éjecté.

default
{
    state_entry()
    {
        //verifie la présence d'avatar dans un rayon de 50m toute les 30 sec
        llSensorRepeat("",NULL_KEY,AGENT,50,TWO_PI,30);
    }


    sensor(integer total_number)
    {
        //l'evenement sensor fonctionne comme touch et fournie le nombre de personnes detectées
        integer i;
        //on boucle sur toutes les personnes detectés
        for(i=0;i<total_number;i++)
        {
            // si la personne detecté n'est pas le propriétaire on lui donne un avertissement
            if(llDetectedKey(0)!=llGetOwner())
            {
                // la fonction du jour
                llEjectFromLand(llDetectedKey(0));
            }
        }
    }
}

mardi 5 février 2008

llSensorRepeat


La fonction llSensorRepeat est strictement identique à la fonction sensor que nous avons vu hier, ca particularité:
Elle possède un paramètre supplémentaire qui est la régularité d'excution qui est fixé en seconde.
Ainsi vous pouvez detecter de manière répétitive une cible. Comme une porte de supermarché qui attends que quelqu'un s'approche pour s'ouvrir



default
{
    state_entry()
    {
         //la fonction du jour
        llSensorRepeat("",NULL_KEY,AGENT,50,TWO_PI,30);
    }


    sensor(integer total_number)
    {
        //l'evenement sensor fonctionne comme touch et fournie le nombre de personnes detectées
        int i;
        //on boucle sur toutes les personnes detectés
        for(i=0;i<total_number;i++)
        {
            // si la personne detecté n'est pas le propriétaire on lui donne un avertissement
            if(llDetectedKey(0)!=llGetOwner())
                llSay(PUBLIC_CHANNEL,"vous n'etes pas le proprietaire, partez");
        }
    }
}

lundi 4 février 2008

llSensor


La fonction llSensor est très puissante. Elle permet de detecter differentes choses dans une zone. Il faut parcontre l'utiliser avec mesure car elle génère du lag. Elle est très utilisé pour les alarmes qui est un peu le principe de notre script.
La fonction prends 5 paramètres:
Un string qui est le nom de la personne ou objet rechercher
Une key de la personne ou objet rechercher
Un integer qui est le type de chose recherché, object agent...
Un integer qui est la portée qui ne peut excéder 96m (ce qui est gigantesque, utiliser des distances trees courtes)
Et pour fini l'arc, il s'agit de l'angle exprimé en radiant dans notre cas il recherche dans une sphère

default
{
    touch_start(integer total_number)
    {
        //la fonction d jour
       llSensor("",NULL_KEY,AGENT,50,TWO_PI);
    }
    sensor(integer total_number)
    {
        //l'evenement sensor fonctionne comme touch et fournie le nombre de personnes detectées        
        int i;
        //on boucle sur toutes les personnes detectés        
        for(i=0;i<total_number;i++)        
        {
            // si la personne detecté n'est pas le propriétaire on lui donne un avertissement
            if(llDetectedKey(0)!=llGetOwner())
                llSay(PUBLIC_CHANNEL,"vous n'etes pas le proprietaire, partez");
        }
    }
}