LlGetInventoryPermMask/ja

From Second Life Wiki
Jump to navigation Jump to search

要約

関数: integer llGetInventoryPermMask( string item, integer mask );

インベントリアイテムの要求された権限 mask のビットフィールドを integer で返します。

• string item プリムの インベントリ の中にあるアイテム
• integer mask MASK_* フラグ

マスク 説明
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 譲渡する権限

警告

  • item がプリムの中で見つからない場合、エラーが DEBUG_CHANNEL 上で叫ばれます。

サンプル

// スクリプトが Open/ Mod 可/ Copy 可/ Transfer 可でなければ文句を言います。

warnIfClosed()
{        
    integer PERMS_OPEN = (PERM_MODIFY | PERM_COPY | PERM_TRANSFER);
    string item = llGetScriptName();
    integer everyonePerms = llGetInventoryPermMask(item, MASK_EVERYONE);
    integer nextPerms = llGetInventoryPermMask(item, MASK_NEXT);
    if ((everyonePerms & PERM_COPY))
    {
        if ((nextPerms & PERMS_OPEN) == PERMS_OPEN)
        {
            llOwnerSay("Open/ Yes Mod/ Yes Copy/ Yes Transfer/ Thank you");
            return;
        }
    }
    llSay(0, "Q: Open/ Yes Mod/ Yes Copy/ Yes Transfer? A: Not so!!!");
}

default
{
    on_rez(integer start_param)
    {
        llResetScript();
    }
    state_entry()
    {
        warnIfClosed();
    }
}


反対の検証をするには (例えば、何かがコピー不可になっているかどうかを確認する場合)

((PERM_COPY & llGetInventoryPermMask(myitem, MASK_OWNER)) == 0)

注意点

  • 実際、この Wiki に投稿された記事の権限は、ユーザがログインするまでは PERM_COPYPERM_TRANSFER ですが、ログインすると PERM_MODIFYPERM_MOVEPERM_COPYPERM_TRANSFER となります。
  • 新規作成されたスクリプトの権限は、基本 = PERM_ALL 、オーナー = PERM_ALL 、次のオーナー = PERM_MOVE または PERM_TRANSFER 、グループ = 0 (なし) 、他の人 = 0 (なし) となります。スクリプトがユーザのインベントリで作られてもオブジェクトの中で作られても関係なく、これらの権限は同じです。

関連項目

関数

•  llGetInventoryPermMask インベントリアイテムの権限を返します
•  llGetInventoryName インベントリアイテムの名前を返します
•  llGetInventoryType インベントリアイテムが存在するか検査し、あればそのタイプを返します
•  llGetInventoryNumber インベントリの中の特定のタイプのアイテムの数を返します
•  llGetInventoryKey インベントリアイテムの UUID を返します (フルパーミッションの場合)
•  llGetInventoryCreator インベントリアイテムのクリエーターを返します

記事

•  hex

特記事項

Search JIRA for related Issues

テスト

•  llGetInventoryPermMask Test

Signature

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