Scripts OSSL - Inscription dans un groupe

De OSWiki
Aller à la navigation Aller à la recherche
/*
Script Acryline Erin 2017
Inscription dans un groupe
Version 1
Licence  : Attribution - Partage dans les Mêmes Conditions 3.0 France (CC BY-SA 3.0 FR)
https://creativecommons.org/licenses/by-sa/3.0/fr/  

Vous devez avoir le droit d'utiliser des scripts et la fonction osInviteToGroup
Ce script cherche si l'utilisateur est dans le groupe de la primitive
qui contient le script.
Si l'utilisateur n'est pas dans le groupe et qu'il veut s'inscrire, le script fait l'enregistrement.
Le script est bilingue : français et anglais.
*/

integer ecoute;
integer canal;
integer flag=0;
key user;
integer groupe;

fermer()
{
   llSetTimerEvent(0.0);
   llListenRemove(ecoute);
   flag =0;
}

default
{
    touch_start(integer nbr)
    {
        if(!flag)
        {
            flag =1;    
            canal =(integer)llFrand(100000);
            ecoute = llListen(canal,"","","");
            user = llDetectedKey(0);
            groupe = llDetectedGroup(0);
            llSetTimerEvent(30.0);
            llDialog(user, "\nChoisissez votre langue.\nChoose your language.", ["Français", "English" ] , canal);
        }
    }

    listen(integer chan, string name, key id, string msg)
    {
       string phrase ;
       if(msg =="Français")
        {
          phrase="Bonjour ! Vous êtes déjà dans le groupe.";
        } 
        if (msg =="English")
        {
          phrase="Hello !You are already in the group.";
        } 
        if(groupe)
        {
           llSay(0,phrase); 
        } else {
           llSetTimerEvent(0.0);
           llListenRemove(ecoute);  
           flag =0;
           if(msg =="Français") state inscriptFR; 
           if (msg =="English") state inscriptEN;           
        }
        fermer();
    }
   timer()
    {
       fermer();
    }
}

state inscriptFR
{
    state_entry()
    {
       ecoute = llListen(canal,"","","");
       llSetTimerEvent(30.0);
       llDialog(user, "\nBonjour ! Vous n'êtes pas dans le groupe,\nvoulez-vous vous y inscrire ?", ["Oui", "Non" ] , canal);  
    }
    listen(integer chan, string name, key id, string msg)
    {
       if(msg=="Non")
        {
          llSay(0,"D'accord, au revoir!");          
        }
        if(msg =="Oui")
        {
            osInviteToGroup( user) ; 
        }
        llSetTimerEvent(0.0);
        llListenRemove(ecoute);
        llResetScript();
    }
}

state inscriptEN
{
    state_entry()
    {
       ecoute = llListen(canal,"","","");
       llSetTimerEvent(30.0);
       llDialog(user,  "\nHello ! You are not in the  group, \nwould you like to register?", ["Yes", "No" ] , canal);  
    }
    listen(integer chan, string name, key id, string msg)
    {
       if(msg=="No")
        {
           llSay(0,"Okay goodbye!");        
        }
        if(msg =="Yes")
        {
            osInviteToGroup( user) ;
        }
        llSetTimerEvent(0.0);
        llListenRemove(ecoute);
        llResetScript();
    }
}