Difference between revisions of "LlGetObjectPermMask/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (Undo revision 850532 by Mako Nozaki (Talk))
 
(One intermediate revision by one other user not shown)
Line 5: Line 5:
|func_footnote
|func_footnote
|func_desc
|func_desc
|return_text=要求された、タスクが付与されたルートオブジェクトでの、パーミッションの'''mask'''
|return_text=タスクが帰属するオブジェクトのためにリクエストされた権限の '''mask''' 
|spec
|spec
|caveats
|caveats
|constants={{LSL Constants Perm Mask/ja}}
|constants={{LSL Constants Perm Mask/ja}}
|examples=
|examples=オブジェクトの上にフローティングテキストを表示し、次第に消えては現れて次のようなメッセージを表示します。
<pre>
<pre>
             Open Object
             Open Object
Line 17: Line 17:
Open/ Yes Mod/ Yes Copy/ Yes Transfer
Open/ Yes Mod/ Yes Copy/ Yes Transfer
</pre>
</pre>
のようなメッセージを、次第に消えては現れるオブジェクト上に浮かぶテキストで見せます。インベントリから以下のスクリプトをドラッグして、オブジェクトに入れます。
インベントリから以下のスクリプトをドラッグして、オブジェクトに入れます。
<lsl>
<source lang="lsl2">
// Float a label over an object: its name, description, and permissions.
// オブジェクトの上にフローティングテキストで表示します: 名前、説明、権限
// http://wiki.secondlife.com/wiki/llGetObjectPermMask
// http://wiki.secondlife.com/wiki/llGetObjectPermMask


Line 83: Line 83:
     }
     }
}
}
</lsl>
</source>
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llGetInventoryPermMask/ja|llGetInventoryPermMask]]|}}
|also_functions={{LSL DefineRow||[[llGetInventoryPermMask/ja|llGetInventoryPermMask]]|}}
Line 89: Line 89:
|also_tests
|also_tests
|also_articles=
|also_articles=
{{LSL DefineRow||[[hex/ja|hex]]}}
{{LSL DefineRow||[[hex]]}}
|notes=新しく作られたオブジェクトの権限は、しばしば初期がPERM_ALL、オーナがPERM_ALL、譲渡されたユーザがPERM_MOVEあるいはPERM_TRANSFER、グループは0(無し)、第三者は0(無し)となります。perm2stringのサンプルは、"Closed / Yes Transfer"のようにしてこれらの権限を記述します。
|notes=新規作成されたオブジェクトの権限は、基本 = {{LSLG/ja|PERM_ALL}} 、オーナー = {{LSLG/ja|PERM_ALL}} 、次のオーナー = {{LSLG/ja|PERM_MOVE}} または {{LSLG/ja|PERM_TRANSFER}} 、グループ = 0 (なし) 、他の人 = 0 (なし) となります。perms2String の例ではこれらの権限を "Closed / Yes Transfer" として表示しています。
|cat1=Permissions/Asset
|cat1=Permissions/Asset
|cat2=Object
|cat2=Object

Latest revision as of 05:00, 25 February 2016

要約

関数: integer llGetObjectPermMask( integer mask );

タスクが帰属するオブジェクトのためにリクエストされた権限の mask を integer で返します。

• integer mask MASK_* flag

マスク 説明
MASK_BASE 0 ベースとなる権限。
MASK_OWNER 1 現在のオーナーの権限。
MASK_GROUP 2 アクティブなグループの権限。
MASK_EVERYONE 3 皆が持っている権限。
MASK_NEXT 4 次のオーナーがもつ権限。
権限 説明
PERM_ALL 0x7FFFFFFF 移動/編集/複製/譲渡する権限
PERM_COPY 0x00008000 複製する権限
PERM_MODIFY 0x00004000 編集する権限
PERM_MOVE 0x00080000 移動する権限
PERM_TRANSFER 0x00002000 譲渡する権限

サンプル

オブジェクトの上にフローティングテキストを表示し、次第に消えては現れて次のようなメッセージを表示します。

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

インベントリから以下のスクリプトをドラッグして、オブジェクトに入れます。

// オブジェクトの上にフローティングテキストで表示します: 名前、説明、権限
// 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());
    }
}

注意点

新規作成されたオブジェクトの権限は、基本 = PERM_ALL 、オーナー = PERM_ALL 、次のオーナー = PERM_MOVE または PERM_TRANSFER 、グループ = 0 (なし) 、他の人 = 0 (なし) となります。perms2String の例ではこれらの権限を "Closed / Yes Transfer" として表示しています。

関連項目

関数

•  llGetInventoryPermMask

記事

•  hex

特記事項

Search JIRA for related Issues

Signature

function integer llGetObjectPermMask( integer mask );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。