<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
	<id>http://i.bnu.edu.cn/wiki/index.php?action=history&amp;feed=atom&amp;title=LlGetInventoryPermMask</id>
	<title>LlGetInventoryPermMask - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://i.bnu.edu.cn/wiki/index.php?action=history&amp;feed=atom&amp;title=LlGetInventoryPermMask"/>
	<link rel="alternate" type="text/html" href="http://i.bnu.edu.cn/wiki/index.php?title=LlGetInventoryPermMask&amp;action=history"/>
	<updated>2026-06-01T03:38:38Z</updated>
	<subtitle>本wiki的该页面的版本历史</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>http://i.bnu.edu.cn/wiki/index.php?title=LlGetInventoryPermMask&amp;diff=876&amp;oldid=prev</id>
		<title>Qmf：创建页面，内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}}   {{函数详情 |函数名 = Function: integer llGetInventoryPermMask( string item, integer categ…”</title>
		<link rel="alternate" type="text/html" href="http://i.bnu.edu.cn/wiki/index.php?title=LlGetInventoryPermMask&amp;diff=876&amp;oldid=prev"/>
		<updated>2021-01-25T08:31:43Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}}   {{函数详情 |函数名 = Function: integer llGetInventoryPermMask( string item, integer categ…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{函数详情&lt;br /&gt;
|函数名 = Function: integer llGetInventoryPermMask( string item, integer category )&lt;br /&gt;
|参数= 参数：&lt;br /&gt;
*string	item–an item in the inventory of the prim this script is in	&lt;br /&gt;
*integer category–MASK_* flag&lt;br /&gt;
|返回值= 返回值：返回库存项的请求权限类别的位字段(整数)&lt;br /&gt;
&lt;br /&gt;
|注意事项=&lt;br /&gt;
注意事项&lt;br /&gt;
*如果项目从prim的库存中丢失，那么在DEBUG_CHANNEL上会喊出一个错误。&lt;br /&gt;
&lt;br /&gt;
|示例=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if ((permsYouHave &amp;amp; permsYouWant) == permsYouWant)&lt;br /&gt;
    llSay(PUBLIC_CHANNEL, &amp;quot;You have the perms you want.&amp;quot;);&lt;br /&gt;
else&lt;br /&gt;
    llSay(PUBLIC_CHANNEL, &amp;quot;You don't have the perms you want.&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer ownerPerms = llGetInventoryPermMask(&amp;quot;inventory item name goes here&amp;quot;, MASK_OWNER);&lt;br /&gt;
integer copyAndModPerms = PERM_COPY | PERM_MODIFY;&lt;br /&gt;
 &lt;br /&gt;
if ((ownerPerms &amp;amp; copyAndModPerms) == copyAndModPerms)&lt;br /&gt;
    llSay(PUBLIC_CHANNEL, &amp;quot;Owner has copy &amp;amp; modify perms.&amp;quot;);&lt;br /&gt;
else&lt;br /&gt;
    llSay(PUBLIC_CHANNEL, &amp;quot;Owner does not have copy &amp;amp; modify perms.&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
string getPermsAsReadableString(integer perm)&lt;br /&gt;
{&lt;br /&gt;
    integer fullPerms = PERM_COPY | PERM_MODIFY | PERM_TRANSFER;&lt;br /&gt;
    integer copyModPerms = PERM_COPY | PERM_MODIFY;&lt;br /&gt;
    integer copyTransPerms = PERM_COPY | PERM_TRANSFER;&lt;br /&gt;
    integer modTransPerms = PERM_MODIFY | PERM_TRANSFER;&lt;br /&gt;
 &lt;br /&gt;
    string output = &amp;quot; perms: &amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    if ((perm &amp;amp; fullPerms) == fullPerms)&lt;br /&gt;
        output += &amp;quot;full&amp;quot;;&lt;br /&gt;
    else if ((perm &amp;amp; copyModPerms) == copyModPerms)&lt;br /&gt;
        output += &amp;quot;copy &amp;amp; modify&amp;quot;;&lt;br /&gt;
    else if ((perm &amp;amp; copyTransPerms) == copyTransPerms)&lt;br /&gt;
        output += &amp;quot;copy &amp;amp; transfer&amp;quot;;&lt;br /&gt;
    else if ((perm &amp;amp; modTransPerms) == modTransPerms)&lt;br /&gt;
        output += &amp;quot;modify &amp;amp; transfer&amp;quot;;&lt;br /&gt;
    else if ((perm &amp;amp; PERM_COPY) == PERM_COPY)&lt;br /&gt;
        output += &amp;quot;copy&amp;quot;;&lt;br /&gt;
    else if ((perm &amp;amp; PERM_TRANSFER) == PERM_TRANSFER)&lt;br /&gt;
        output += &amp;quot;transfer&amp;quot;;&lt;br /&gt;
    else&lt;br /&gt;
        output += &amp;quot;none&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    //  Remember, items in Second Life must have either&lt;br /&gt;
    //  PERM_COPY or PERM_TRANSFER when &amp;quot;talking about&amp;quot;&lt;br /&gt;
    //  owner perms or perms for next owner.&lt;br /&gt;
 &lt;br /&gt;
    return  output;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        string inventoryItemName = &amp;quot;inventory item name goes here&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
        integer basePerms      = llGetInventoryPermMask(inventoryItemName, MASK_BASE);&lt;br /&gt;
        integer ownerPerms     = llGetInventoryPermMask(inventoryItemName, MASK_OWNER);&lt;br /&gt;
        integer nextOwnerPerms = llGetInventoryPermMask(inventoryItemName, MASK_NEXT);&lt;br /&gt;
        integer groupPerms     = llGetInventoryPermMask(inventoryItemName, MASK_GROUP);&lt;br /&gt;
        integer everyonePerms  = llGetInventoryPermMask(inventoryItemName, MASK_EVERYONE);&lt;br /&gt;
 &lt;br /&gt;
        llSay(0, &amp;quot;/me [&amp;quot; + inventoryItemName&lt;br /&gt;
            + &amp;quot;]: base&amp;quot; + getPermsAsReadableString(basePerms));&lt;br /&gt;
        llSay(0, &amp;quot;/me [&amp;quot; + inventoryItemName&lt;br /&gt;
            + &amp;quot;]: owner&amp;quot; + getPermsAsReadableString(ownerPerms));&lt;br /&gt;
        llSay(0, &amp;quot;/me [&amp;quot; + inventoryItemName&lt;br /&gt;
            + &amp;quot;]: next owner&amp;quot; + getPermsAsReadableString(nextOwnerPerms));&lt;br /&gt;
        llSay(0, &amp;quot;/me [&amp;quot; + inventoryItemName&lt;br /&gt;
            + &amp;quot;]: group&amp;quot; + getPermsAsReadableString(groupPerms));&lt;br /&gt;
        llSay(0, &amp;quot;/me [&amp;quot; + inventoryItemName&lt;br /&gt;
            + &amp;quot;]: everyone&amp;quot; + getPermsAsReadableString(everyonePerms));&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
测试反义词(例如，看某物是否不是复制的):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    if (!(PERM_COPY &amp;amp; llGetInventoryPermMask(myitem, MASK_OWNER)))&lt;br /&gt;
        llSay(PUBLIC_CHANNEL, &amp;quot;/me [&amp;quot; + myitem + &amp;quot;]: owner doesn't have copy perms.&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
提醒下一位业主在出售前设置哪些权限，选择哪些权限需要设置;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CheckPerms()&lt;br /&gt;
{        &lt;br /&gt;
    string item = llGetScriptName();&lt;br /&gt;
    integer nextOwnerPerms = llGetInventoryPermMask(item, MASK_NEXT);&lt;br /&gt;
 &lt;br /&gt;
    if(PERM_COPY &amp;amp; nextOwnerPerms)&lt;br /&gt;
        llOwnerSay(&amp;quot;Set no copy&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    if(PERM_MODIFY &amp;amp; nextOwnerPerms)&lt;br /&gt;
        llOwnerSay(&amp;quot;Set no mod&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    if(PERM_TRANSFER &amp;amp; nextOwnerPerms)&lt;br /&gt;
        llOwnerSay(&amp;quot;Set no transfer&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    on_rez(integer start_param)&lt;br /&gt;
    {&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        if(llGetOwner() != llGetInventoryCreator(llGetScriptName()))&lt;br /&gt;
            CheckPerms();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|相关函数=	&lt;br /&gt;
[[llGetInventoryPermmask]]&lt;br /&gt;
[[llGetInventoryName]] -返回库存项的名称&lt;br /&gt;
[[llGetInventoryType]] -测试库存项是否存在并返回其类型&lt;br /&gt;
[[llGetInventoryNumber]] -返回库存中特定类型的项目的数量&lt;br /&gt;
[[llGetInventoryKey]] -返回库存项的UUID(如果是完整的perm)&lt;br /&gt;
[[llGetInventoryCreator]] -返回库存物品的创建者&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|相关事件=&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Qmf</name></author>
		
	</entry>
</feed>