« Scripts OSSL - Inscription dans un groupe » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 55 : Ligne 55 :
           llListenRemove(ecoute);   
           llListenRemove(ecoute);   
           flag =0;
           flag =0;
           state inscriptFR;            
           if(msg =="Français") state inscriptFR;  
          if (msg =="English") state inscriptEN;         
         }
         }
         fermer();
         fermer();

Version du 5 octobre 2017 à 05:36

<source lang="ada"> /* Script Acryline Erin 2017 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/

  • /

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();
   }

} </source>