Difference between revisions of "LlGetInventoryPermMask/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (カテゴリ変更)
 
(2 intermediate revisions by one other user not shown)
Line 3: Line 3:
|func=llGetInventoryPermMask|return_type=integer
|func=llGetInventoryPermMask|return_type=integer
|p1_type=string|p1_name=item
|p1_type=string|p1_name=item
|p2_type=integer|p2_name=mask|p2_desc=MASK_*フラグ
|p2_type=integer|p2_name=mask|p2_desc=MASK_* フラグ
|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=
<lsl>
<source lang="lsl2">// スクリプトが Open/ Mod / Copy / Transfer 可でなければ文句を言います。
// Complain unless this script is Open/ Yes Mod/ Yes Copy/ Yes Transfer.


warnIfClosed()
warnIfClosed()
Line 41: Line 40:
         warnIfClosed();
         warnIfClosed();
     }
     }
}
}</source>
</lsl>
 
 
反対の検証をするには (例えば、何かがコピー不可になっているかどうかを確認する場合)
 
<source lang="lsl2">((PERM_COPY & llGetInventoryPermMask(myitem, MASK_OWNER)) == 0)</source>
 
 
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llGetObjectPermMask/ja|llGetObjectPermMask]]|}}
|also_functions=
{{LSL DefineRow||[[llGetInventoryCreator/ja|llGetInventoryCreator]]|}}
{{LSL DefineRow||{{LSLG/ja|llGetInventoryPermMask}}|インベントリアイテムの権限を返します}}
{{LSL DefineRow||[[llGetInventoryKey/ja|llGetInventoryKey]]|}}
{{LSL DefineRow||{{LSLG/ja|llGetInventoryName}}|インベントリアイテムの名前を返します}}
{{LSL DefineRow||[[llGetInventoryType/ja|llGetInventoryType]]|}}
{{LSL DefineRow||{{LSLG/ja|llGetInventoryType}}|インベントリアイテムが存在するか検査し、あればそのタイプを返します}}
{{LSL DefineRow||{{LSLG/ja|llGetInventoryNumber}}|インベントリの中の特定のタイプのアイテムの数を返します}}
{{LSL DefineRow||{{LSLG/ja|llGetInventoryKey}}|インベントリアイテムの {{LSLG/ja|UUID}} を返します (フルパーミッションの場合)}}
{{LSL DefineRow||{{LSLG/ja|llGetInventoryCreator}}|インベントリアイテムのクリエーターを返します}}
|also_events
|also_events
|also_tests
|also_tests=
|also_articles
{{LSL DefineRow||[[llGetInventoryPermMask Test]]}}
|also_articles=
|also_articles=
{{LSL DefineRow||[[hex/ja|hex]]}}
{{LSL DefineRow||{{LSLG|hex}}}}
|notes=
|notes=
* 事実上、このLSL wikiで公開されたスクリプトの権限はログインするまではPERM_COPYで、ログイン後はPERM_MODIFYかPERM_COPYです。
* 実際、この Wiki に投稿された記事の権限は、ユーザがログインするまでは {{LSLG/ja|PERM_COPY}} と {{LSLG/ja|PERM_TRANSFER}} ですが、ログインすると {{LSLG/ja|PERM_MODIFY}} 、{{LSLG/ja|PERM_MOVE}} 、{{LSLG/ja|PERM_COPY}} 、{{LSLG/ja|PERM_TRANSFER}} となります。
* 作られたスクリプトの権限は、基本はPERM_ALL、オーナはPERM_ALL、次のオーナはPERM_MOVEあるいはPERM_TRANSFER、グループは0(なし)、全体は0(なし)ということが多いです。これらの権限はインベントリ内またはオブジェクト内で作る場合のいずれも問わず同じということが多いです。
* 新規作成されたスクリプトの権限は、基本 = {{LSLG/ja|PERM_ALL}} 、オーナー = {{LSLG/ja|PERM_ALL}} 、次のオーナー = {{LSLG/ja|PERM_MOVE}} または {{LSLG/ja|PERM_TRANSFER}} 、グループ = 0 (なし) 、他の人 = 0 (なし) となります。スクリプトがユーザのインベントリで作られてもオブジェクトの中で作られても関係なく、これらの権限は同じです。
|permission
|cat1=Inventory
|negative_index
|cat2=Permissions/Asset
|cat1=Inventory/ja
|cat2=Permissions/Asset/ja
|cat3
|cat3
|cat4
|cat4
}}
}}

Latest revision as of 05:52, 25 February 2016

要約

関数: 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の関連した項目が参考になるかもしれません。