key target = "";
MakeParticles()
{
if (target == "owner") target = llGetOwner();
if (target == "self") target = llGetKey();
llParticleSystem([
PSYS_PART_FLAGS , 0
//| PSYS_PART_BOUNCE_MASK
//| PSYS_PART_WIND_MASK
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_INTERP_SCALE_MASK
//| PSYS_PART_FOLLOW_SRC_MASK
| PSYS_PART_FOLLOW_VELOCITY_MASK
//| PSYS_PART_TARGET_POS_MASK
| PSYS_PART_EMISSIVE_MASK
//| PSYS_PART_TARGET_LINEAR_MASK
,
//PSYS_SRC_TARGET_KEY,target,
//Patterns:
//PSYS_SRC_PATTERN_DROP
//PSYS_SRC_PATTERN_EXPLODE
//PSYS_SRC_PATTERN_ANGLE
//PSYS_SRC_PATTERN_ANGLE_CONE
//PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE
,PSYS_SRC_TEXTURE, "75f7ceed-1b02-6579-92e2-6464363139b3"
,PSYS_PART_MAX_AGE, 2.5
,PSYS_SRC_BURST_RATE, 0.01
,PSYS_SRC_BURST_PART_COUNT, 1
,PSYS_SRC_BURST_RADIUS, 0.01
,PSYS_SRC_BURST_SPEED_MIN, .4
,PSYS_SRC_BURST_SPEED_MAX, .6
,PSYS_SRC_ACCEL, <0.0,0.0,-1.50>
,PSYS_PART_START_COLOR, <.52,.02,.0>
,PSYS_PART_END_COLOR, <.40,.10,.0>
,PSYS_PART_START_ALPHA, 1.0
,PSYS_PART_END_ALPHA, 0.0
,PSYS_PART_START_SCALE, <.07,.07,.07>
,PSYS_PART_END_SCALE, <.6,.6,.6>
,PSYS_SRC_ANGLE_BEGIN, PI
,PSYS_SRC_ANGLE_END, 170 * DEG_TO_RAD
,PSYS_SRC_INNERANGLE, PI
,PSYS_SRC_OUTERANGLE, 170 * DEG_TO_RAD
,PSYS_SRC_OMEGA, <0.0,0.0,0.0>
]);
}
string ANIM = "express_open_mouth";
string ANIM2 = "express_anger";
vector pos;
default {
state_entry()
{
llSetTimerEvent(0.0);
}
attach(key attached)
{
if (attached != NULL_KEY)
{
llRequestPermissions(attached, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);
llListen(23468723,"",NULL_KEY,"");
} else
{
llSetTimerEvent(0.1);
}
}
run_time_permissions(integer perms)
{
if(perms & (PERMISSION_TRIGGER_ANIMATION))
{
llTakeControls(CONTROL_LBUTTON,TRUE,TRUE);
}
}
control(key id, integer level, integer edge)
{
pos = llGetAgentSize(id);
float zee = pos.z;
if(edge & level & CONTROL_LBUTTON)
{
llParticleSystem([]);
llStartAnimation(ANIM);
llStartAnimation(ANIM2);
integer rand = llRound(llFrand(4));
if(rand == 0)
llTriggerSound("60edd6cd-6dd8-4520-d545-eca32e0ad7bc",1.0);
if(rand == 1)
llTriggerSound("efbda044-dc6c-c9f0-e622-1079c8c1a566",1.0);
if(rand == 2)
llTriggerSound("a7abc081-58b5-39c4-fd5e-8fc77362cfca",1.0);
if(rand == 3)
llTriggerSound("dd54d31d-9640-46e7-1cd1-33507182c2c5",1.0);
if(rand == 4)
llTriggerSound("36b4dc22-e5d0-4cb9-03c9-573bab173de3",1.0);
MakeParticles();
llSleep(1.25);
llRezObject("puke",llGetPos() + <1.0,0,-zee/1.85> * llGetRot(),ZERO_VECTOR,ZERO_ROTATION,1);
llParticleSystem([]);
}
}
listen(integer channel, string name, key id, string msg)
{
pos = llGetAgentSize(llGetOwner());
float zee = pos.z;
list tokens = llParseString2List(msg, [" "],[]);
if(llList2Key(tokens,0)==llGetOwner() && llList2String(tokens,1)=="drink")
{
llParticleSystem([]);
llStartAnimation(ANIM);
llStartAnimation(ANIM2);
integer rand = llRound(llFrand(4));
if(rand == 0)
llTriggerSound("60edd6cd-6dd8-4520-d545-eca32e0ad7bc",1.0);
if(rand == 1)
llTriggerSound("efbda044-dc6c-c9f0-e622-1079c8c1a566",1.0);
if(rand == 2)
llTriggerSound("a7abc081-58b5-39c4-fd5e-8fc77362cfca",1.0);
if(rand == 3)
llTriggerSound("dd54d31d-9640-46e7-1cd1-33507182c2c5",1.0);
if(rand == 4)
llTriggerSound("36b4dc22-e5d0-4cb9-03c9-573bab173de3",1.0);MakeParticles();
llSleep(1.25);
llRezObject("puke",llGetPos() + <1.0,0,-zee/1.85> * llGetRot(),ZERO_VECTOR,ZERO_ROTATION,1);
llParticleSystem([]);
}
}
}