De DigiWiki.
string item = "Default";
default
{
state_entry()
{
llOwnerSay("Touch to get information about \"" + item + "\".");
}
touch_start(integer total_number)
{
integer type = llGetInventoryType(item);
integer index = llListFindList([ INVENTORY_NONE,
INVENTORY_TEXTURE, INVENTORY_SOUND, INVENTORY_LANDMARK, INVENTORY_CLOTHING,
INVENTORY_OBJECT, INVENTORY_NOTECARD, INVENTORY_SCRIPT, INVENTORY_BODYPART,
INVENTORY_ANIMATION, INVENTORY_GESTURE], [type]);
string name = llList2String(["does not exist",
"texture", "sound", "landmark", "clothing",
"object", "notecard", "script", "body part",
"animation", "gesture"], index);
llOwnerSay("Type: " + name);
if(type == INVENTORY_NONE)
return;
integer owner_perms = llGetInventoryPermMask(item, MASK_OWNER);
list perms;
if(owner_perms & PERM_COPY)
perms += "Copy";
if(owner_perms & PERM_MODIFY)
perms += "Modify";
if(owner_perms & PERM_TRANSFER)
perms += "Transfer";
if(owner_perms & PERM_MOVE)
perms += "Move";
llOwnerSay("Perms: " + llList2CSV(perms));
integer temp = PERM_COPY | PERM_MODIFY | PERM_TRANSFER;
if((owner_perms & temp) != temp)
return;
llOwnerSay("Key: " + (string)llGetInventoryKey(item));
}
}