(I will mark the area in question)
(code)
list ANIMS = [];
list ANIMS2 = [];
key chave;
integer i;
default
{
state_entry()
{
llSitTarget(<-0.15,0,-0.38>, ZERO_ROTATION);
}
changed(integer change) {
if (change & CHANGED_LINK)
{
key av = llAvatarOnSitTarget();
if (av)
{
if (llGetInventoryNumber(INVENTORY_ANIMATION) <= 12)
{
for (i = 0; i < llGetInventoryNumber(INVENTORY_ANIMATION); i++)
ANIMS += [llGetInventoryName(INVENTORY_ANIMATION, i)];
}
else
{
for (i = 0; i < 11; i++)
ANIMS += [llGetInventoryName(INVENTORY_ANIMATION, i)];
for (i = 11; i < llGetInventoryNumber(INVENTORY_ANIMATION); i++)
ANIMS2 += [llGetInventoryName(INVENTORY_ANIMATION, i)];
ANIMS += "more...";
ANIMS2 += "...back";
}
}
//This area does not compile, and I know touch is not a 'changed' command. But I am not sure what it should be. I added the 'changed' command above.
touch_start(integer total_number)
{
chave = llDetectedKey(0);
if ((chave == llGetPermissionsKey())
&& (llGetPermissions() & PERMISSION_TRIGGER_ANIMATION))
llDialog(chave, "Select the animation you want to play: ", ANIMS, 777);
else
llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);
}
run_time_permissions(integer perm)
{
if ((chave == llGetPermissionsKey()) && (llGetPermissions() & PERMISSION_TRIGGER_ANIMATION))
llDialog(chave, "Select the animation you want to play: ", ANIMS, 777);
}
listen(integer channel, string name, key id, string message)
{
if (channel == 777)
{
if (message == "more..."

llDialog(chave, "Select the animation you want to play: ", ANIMS2, 777);
else if (message == "...back"

llDialog(chave, "Select the animation you want to play: ", ANIMS, 777);
else
{
list anims = llGetAnimationList(llGetPermissionsKey());
integer len = llGetListLength(anims);
for (i = 0; i < len; ++i)
{
llStopAnimation(llList2Key(anims, i));
llSleep(0.2);
}
llStartAnimation("default_anim"
;}
}
}
}