LlGetObjectPermMask/de

From Second Life Wiki

Hauptseite > LlGetObjectPermMask > LlGetObjectPermMask/de
Jump to: navigation, search

LSL Portal Funktionen | Ereignisse | Typen | Konstanten | Datenflusskontrolle | Script Sammlung | Tutorien

Contents

Beschreibung

Funktion: integer llGetObjectPermMask( integer mask );

Bitfeld ist die angefragte Erlaubnismaske mask für das Root Objekt des Linksets in dem sich das Script befindet.

• integer mask MASK_* flag
Maske Beschreibung
MASK_BASE 0 Die grundsätzliche Erlaubnis.
MASK_OWNER 1 Erlaubnis für derzeitigen Besitzer.
MASK_GROUP 2 Erlaubnis für aktive Gruppe.
MASK_EVERYONE 3 Erlaubnis für Jederman.
MASK_NEXT 4 Erlaubnis die der nächste Besitzer haben wird.
Erlaubnis Wert Beschreibung
PERM_ALL 0x7FFFFFFF Erlaubnis zum Bewegen/Modifizieren/Kopieren/Weitergeben
PERM_COPY 0x00008000 Erlaubnis zum Kopieren
PERM_MODIFY 0x00004000 Erlaubnis zur Modifikation
PERM_MOVE 0x00080000 Erlaubnis zum Bewegen
PERM_TRANSFER 0x00002000 Erlaubnis zur Weitergabe

Beispiele

Der Text über einem Objekt verschwindet und kehrt dann zurück um so etwas zu sagen wie:

             Open Object
                 ---
            by Anonymous
                 ---
Open/ Yes Mod/ Yes Copy/ Yes Transfer

Dies geschieht, wenn Du das folgende Script vom Inventar in das Objekt ziehst.

 
// Float a label over an object: its name, description, and permissions.
// http://wiki.secondlife.com/wiki/llGetObjectPermMask
 
string perms2String(integer everyonePerms, integer nextPerms)
{        
    integer PERMS_OPEN = (PERM_MODIFY | PERM_COPY | PERM_TRANSFER);
 
    string line = "Closed";
    if ((nextPerms & PERMS_OPEN) == PERMS_OPEN)
    {
        if (everyonePerms & PERM_COPY)
        {
            line = "Open";
        }
    }
 
    if (nextPerms & PERM_MODIFY)
    {
        line += "/ Yes Mod";
    }
    if (nextPerms & PERM_COPY)
    {
        line += "/ Yes Copy";
    }
    if (nextPerms & PERM_TRANSFER)
    {
        line += "/ Yes Transfer";
    }
 
    return line;
}
 
list getLabels()
{
    string name = llGetObjectName();
    if (name == "Object") { name = "(No Name)"; }
 
    string description = llGetObjectDesc();
    if (description == "") { description = "(No 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>; // color = <R, G, B>
        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());
    }
}
 

Notizen

Die Erlaubnis für ein neu erstelltes Objekt ist oft Base = PERM_ALL, Eigentümer = PERM_ALL, nächster Eigentümer = PERM_MOVE oder PERM_TRANSFER, Gruppe = 0 (keine), Jeder = 0 (keine). Das perms2String Beispiel beschreibt diese Erlaubnis als "Closed / Yes Transfer".

Siehe auch

Funktionen

•  llGetInventoryPermMask Gibt die Befugnisse des Gegenstands im Inventar

Artikel

•  hex

Weiterführende Anmerkungen

Dieser Artikel war nicht hilfreich für Dich? Vielleicht bringt der zugehörige Artikel im SLinfo Wiki Erleuchtung.
In other languages