LlGetObjectPermMask/fr

From Second Life Wiki
< LlGetObjectPermMask
Revision as of 05:06, 13 January 2008 by Gally Young (talk | contribs) (creation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Description

Fonction: integer llGetObjectPermMask( integer mask );

Renvoie un integer correspondand au mask (masque) passé en argument (pour l'objet principal dans lequel le script est attaché).

• integer mask cf. valeurs MASK_*
Masques Valeurs Descriptions
MASK_BASE 0 Renvoie les droits de base.
MASK_OWNER 1 Renvoie les droits du propriétaire de l'objet.
MASK_GROUP 2 Renvoie les droits du groupe.
MASK_EVERYONE 3 Renvoie les droits des autres residents.
MASK_NEXT 4 Renvoie les droits du prochain propriétaire.
Droits Valeurs Description
PERM_ALL 0x7FFFFFFF Droits de Déplacer/Modifier/Copier/Transférer.
PERM_COPY 0x00008000 Droit de Copier.
PERM_MODIFY 0x00004000 Droit de Modifier.
PERM_MOVE 0x00080000 Droit de Déplacer
PERM_TRANSFER 0x00002000 Droit de Transférer

Exemples

Ce script fait apparaitre un texte au dessus d'un objet avec un message similaire à celui-ci :

         Visualisation des droits
                 ---
            par Anonymous
                 ---
Ouvert/ Oui Mod/ Oui Copie/ Oui Transfer

Glissez ce script depuis votre inventaire dans un objet :

// Fait apparaitre un message au dessus d'un objet : son nom, sa description et les droits le concernant.
// http://wiki.secondlife.com/wiki/llGetObjectPermMask

string perms2String(integer everyonePerms, integer nextPerms)
{        
    integer PERMS_OPEN = (PERM_MODIFY | PERM_COPY | PERM_TRANSFER);

    string line = "Ferme";
    if ((nextPerms & PERMS_OPEN) == PERMS_OPEN)
    {
        if (everyonePerms & PERM_COPY)
        {
            line = "Ouvert";
        }
    }
    
    if (nextPerms & PERM_MODIFY)
    {
        line += "/ Oui Mod";
    }
    if (nextPerms & PERM_COPY)
    {
        line += "/ Oui Copie";
    }
    if (nextPerms & PERM_TRANSFER)
    {
        line += "/ Oui Transfer";
    }
    
    return line;
}

list getLabels()
{
    string name = llGetObjectName();
    if (name == "Object") { name = "(Pas de nom)"; }
    
    string description = llGetObjectDesc();
    if (description == "") { description = "(Pas de description)"; }
        
    integer everyonePerms = llGetObjectPermMask(MASK_EVERYONE);
    integer nextPerms = llGetObjectPermMask(MASK_NEXT);
    string permissions = perms2String(everyonePerms, nextPerms);
    return [name, description, permissions];
}
    
floatLabels(list lines)
{
        string label = llDumpList2String(lines, "\n---\n");
        vector color = <1.0, 1.0, 1.0>; // couleur= <Rouge, Vert, Bleu>
        float opacity = 1.0; // opacity = alpha = 1.0 - transparency        
        llSetText(label, color, opacity);
}

default
{
    state_entry()
    {
        llSetText("", <0.0, 0.0, 0.0>, 0.0);
        llSleep(0.1);
        floatLabels(getLabels());
        llRemoveInventory(llGetScriptName());
    }
}

Notes

Les droits d'un objet récemment créé sont souvent : Pouvoir de base = PERM_ALL, Propriétaire = PERM_ALL, Prochain propriétaire= PERM_MOVE or PERM_TRANSFER, droit du group = 0 (aucun groupe), Tout le monde = 0 (Rien). Le script perms2String décrit ces options avec la mention "Fermé/ Oui Transfer".

Voir également

Fonctions

•  llGetInventoryPermMask

Articles

•  hex
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.