// V1 //
key owner;
string me;
integer open = FALSE;
list folder_contents;
string folder_name; // The folder name will establish from the description of the object this script is in.
// CHANGE ONLY THE SETTINGS BELOW //
integer give_this_script = TRUE; // Give this FREE script away with the other contents? Think about it....
integer allow_only_owner = FALSE; // Owner only or open to all?
integer self_delete = FALSE; // Self delete?
integer timed_deletion = FALSE; // Delete immediately after giving contents or hang around a bit?
float deletion_delay = 10.0; // Length of time to hang around in seconds (if timed_deletion is set TRUE)
string display_rez_text = ""; // Floating text on rez?
string localchat_rez_text = ""; // Chatted message on rez?
string ownerchat_rez_text = ""; // Chatted message only to owner on rez?
string display_deletion_text = ""; // Floating text before deletion?
string localchat_deletion_text = ""; // Chatted message before deletion?
string ownerchat_deletion_text = ""; // Chatted message only to owner before deletion?
vector rez_text_color = <1.0,1.0,1.0>; // Color of floating text if set to show on rez.
vector deletion_text_color = <1.0,1.0,1.0>; // Color of floating text if set to show before deletion.
float rez_text_alpha = 1.0; // Transparency of floating text if set to show on rez.
float deletion_text_alpha = 1.0; // Transparency of floating text if set to show before deletion.
// CHANGE ONLY THE SETTINGS ABOVE //
OnRezTextOptionsFunctionThingy(integer o)
{
if(display_rez_text != "")
llSetText(display_rez_text, rez_text_color, rez_text_alpha);
if(localchat_rez_text != "")
llSay(0, localchat_rez_text);
if(ownerchat_rez_text != "")
llOwnerSay(ownerchat_rez_text);
if(!o)
{
integer count = 0;
integer NOI = llGetInventoryNumber(INVENTORY_ALL);
if(NOI)
{
folder_contents = [];
do
{
string name = llGetInventoryName(INVENTORY_ALL, count);
if(name == me)
{
if(give_this_script)
folder_contents += [name];
}
else
folder_contents += [name];
}
while((++count) < NOI);
}
folder_name = llGetObjectDesc();
}
}
default
{
on_rez(integer param)
{
owner = llGetOwner();
me = llGetScriptName();
OnRezTextOptionsFunctionThingy(FALSE);
}
touch_start(integer nd)
{
if(!open)
{
integer give = FALSE;
key toucher = llDetectedKey(0);
if(allow_only_owner)
{
if(toucher == owner)
give = TRUE;
}
else
{
give = TRUE;
}
if(give)
{
open = TRUE;
llGiveInventoryList(toucher, folder_name, folder_contents);
}
if(open)
{
if(display_deletion_text != "")
llSetText(display_deletion_text, deletion_text_color, deletion_text_alpha);
if(localchat_deletion_text != "")
llSay(0, localchat_deletion_text);
if(ownerchat_deletion_text != "")
llOwnerSay(ownerchat_deletion_text);
if(self_delete)
{
if(timed_deletion)
llSetTimerEvent(deletion_delay);
else
llDie();
}
else
{
open = FALSE;
OnRezTextOptionsFunctionThingy(TRUE);
}
}
}
}
timer()
{
llDie();
}
}