ROOTPRIM SECTION
CODE
list MENU1 = [];
list MENU2 = [];
integer listener;
integer MENU_CHANNEL = 1000;
Dialog(key id, list menu)
{
llListenRemove(listener);
listener = llListen(MENU_CHANNEL, "", NULL_KEY, "");
llDialog(id, "Select one object below: ", menu, MENU_CHANNEL);
}
default
{
on_rez(integer num)
{
llResetScript();
}
touch_start(integer total_number)
{
integer i = 0;
MENU1 = [];
MENU2 = [];
integer c = llGetInventoryNumber(INVENTORY_OBJECT);
if (c <= 12)
{
for (; i < c; ++i)
MENU1 += llGetInventoryName(INVENTORY_OBJECT, i);
}
else
{
for (; i < 11; ++i)
MENU1 += llGetInventoryName(INVENTORY_OBJECT, i);
if(c > 22)
c = 22;
for (; i < c; ++i)
MENU2 += llGetInventoryName(INVENTORY_OBJECT, i);
MENU1 += ">>";
MENU2 += "<<";
}
Dialog(llDetectedKey(0), MENU1);
}
listen(integer channel, string name, key id, string message)
{
if (channel == MENU_CHANNEL)
{
llListenRemove(listener);
if (message == ">>")
{
Dialog(id, MENU2);
}
else if (message == "<<")
{
Dialog(id, MENU1);
}
else
{
llSay(1000, "die");
// todo add offsets so box sites perfect on rezzer
llRezObject(message, llGetPos(), ZERO_VECTOR, llGetRot(), 0);
}
}
}
}
THEN THE DIE SECTION
CODE
{
state_entry()
{
llListen(1000,"","","");
}
listen(integer chan, string name, key id, string msg)
{
if(msg=="die")
{
llDie();
}
}
}