05-06-2009 22:55
well, why not? To make this, rez a sphere, find a 'pop' sound and drop it into the contents. Drop in an 'invisible' texture and a 'gumball' texture, whatever you want the bubble and the gumball to look like. Drop in this script, and look out lol...no, just tweak the script however you want, and take it into inventory. When you wear it for the first time, it'll take on gumball size and go invisible. Have fun!

CODE

integer listener;

blow()
{
llSetTexture("gumball",ALL_SIDES);
llSetPrimitiveParams([PRIM_SIZE,<.050,.050,.050>]);
llSetPrimitiveParams([PRIM_SIZE,<.100,.100,.100>]);
llSetPrimitiveParams([PRIM_SIZE,<.200,.200,.200>]);
llPlaySound("pop",1.0);
llSetTexture("invisible",ALL_SIDES);
llSetPrimitiveParams([PRIM_SIZE,<.025,.025,.025>]);
}

default
{
state_entry()
{
llSetPrimitiveParams([PRIM_SIZE,<.025,.025,.025>]);
}
attach(key av_id)
{
if(av_id)
{
llSetTexture("invisible",ALL_SIDES);
llInstantMessage(llGetOwner(),"Use command '/73 bubble' in chat to
blow bubbles.Use '/73 stop' to stop blowing bubbles.");
listener = llListen(73,"",llGetOwner(),"");
}
else
{
llSetTexture("gumball",ALL_SIDES);
llResetScript();
}
}

listen(integer channel,string name,key id,string msg)
{
if(id == llGetOwner())
{
if(msg == "bubble")
{
llSetTimerEvent(1.0);
}
else if(msg == "stop")
{
llSetTimerEvent(0.0);
}
}
}
timer()
{
blow();
llSetTimerEvent(30.0);
}
}