CODE
list give_in_folder;
list give_individually;
integer item_no;
string name;
integer folder_give = FALSE;
integer item_give = FALSE;
get_inv_details()
{
name = llGetInventoryName( INVENTORY_ALL, item_no );
if ( name != llGetScriptName() )
{
integer mask = llGetInventoryPermMask(name, MASK_OWNER);
if ( (mask & PERM_COPY) )
{
give_in_folder = give_in_folder + [ name ];
folder_give = TRUE;
}
else
{
give_individually = give_individually + [ name ];
item_give = TRUE;
}
}
}
init()
{
llSetText( "Touch for contents",<1,1,1>,1);
llSetTouchText("gimme");
llOwnerSay (" Touch to receive contents");
}
default
{
state_entry()
{
init();
}
on_rez( integer param)
{
init();
}
touch_start( integer num )
{
//////////////////////////////////////////////////////////////////
if ( llDetectedKey(0) != llGetOwner() ) //remove these lines
{ //to allow anyone to
llOwnerSay ("only the owner can empty this box"); //get the contents
return; // of the
} //box
////////////////////////////////////////////////////////////////
item_no = 0;
for ( item_no= 0 ; item_no < llGetInventoryNumber( INVENTORY_ALL ) ;item_no++ )
{
get_inv_details();
}
if ( folder_give )
{
llGiveInventoryList ( llDetectedKey(0), llGetObjectName(), give_in_folder );
}
if ( item_give )
{
integer i;
for ( i=0 ; i<llGetListLength( give_individually ) ; i++ )
{
llGiveInventory( llDetectedKey(0),llList2String( give_individually, i ));
}
}
}
}

;