LlListFindList/fr

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Description

Fonction: integer llListFindList( list src, list test );

Renvoie un integer correspondant à l’index du premier élément du list test dans src
la fonction contrôle l'existence d'un list dans un autre list.

• list src
• list test

Si test n’est pas trouvé dans le list src, la fonction renvoie la valeur -1.
L’index du premier élément d’un list est l’index 0

Avertissements

  • La fonction effectue une comparaison stricte des strings

Exemples

<lsl>list numbers = [1, 2, 3, 4, 5]; default {

   state_entry()
   {
       integer index = llListFindList(numbers, [3]);
       if (index != -1)
       {
           list three_four = llList2List(numbers, index, index + 1);
           llOwnerSay(llDumpList2String(three_four, ","));
           // Object: 3,4
       }
   }

}</lsl> <lsl>// Gestion d'une liste d'acces by staxx Hird // Complètement gratuit vous pouvez utilisez ce script comme vous le souhaitez // la revente est interdite ceci à pour but de comprendre le système de liste avec un example concret. // tapez le nom de l'avatar qui sera autorisé

list acces; default {

   state_entry()
   {
       acces = []; // au chargement la liste est vide
       llListen(0,"",llGetOwner(),""); // ecoute sur le canal 0 (chat)
   }
   
   listen( integer channel, string name, key id, string message )
   {
       if(llGetOwnerKey(id) == llGetOwner())// on verifie que c'est bien le owner de l'objet qui ajoute l'avatar
       {
           integer index = llListFindList(acces, [message]);// on cherche si l'avatar est déjà présent dans le liste
           if (index == -1)
           {
               string av = llToUpper(message);// on enregistre le nom en majuscule 
               acces += av;// on ajoute l'avatar autorisé
               llOwnerSay(message+" à été ajouter à la liste d'accès !");
           }
           else
           {
               // si il est déjà dans la liste on le lui dit
               llOwnerSay(message+" se trouve déjà dans la liste d'accès");
           }


       }
   }
   touch_start(integer total_number)
   {
       string alt = llToUpper(llDetectedName(0)); // on passe le nom de l'avatar qui à cliquer en majuscule
       integer index = llListFindList(acces, [alt]); // on cherche si il fait partie de la liste
       if (index == -1)
       {
          llSay(0,"Vous n'avez pas l'accès à cette zone"); // pas trouver donc pas d'accès
       }
       else
       {
           llSay(0,"Bienvenue: "+llDetectedName(0));// on la trouver il peux avoir accès
       }
   }

} </lsl>

Codes utiles

Une façon simple de vérifier l’existence d’un élément dans un list... <lsl>if(~llListFindList(myList, (list)item)) {//il existe

   //cela fonction car  ~(-1) == 0
   //cela permet de sauver de l’espace et c’est plus rapide que != -1

}</lsl>

Voir également

Fonctions

•  llSubStringIndex Trouve un string dans un autre string
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.