Particle Poofer v1.1

De DigiWiki.

// Particle Poofer v1.1
// Modifier par djphil pour fonctionner sur Aurora-Sim.
 
key owner; 
key target; 
integer dChannel; 
 
// key sub; 
// integer info; 
// Particles 
integer flags; 
integer glow = TRUE; 
integer bounce = FALSE; 
integer interpColor = TRUE; 
integer interpSize = TRUE; 
integer wind = FALSE; 
integer followSource = FALSE; 
integer followVel = TRUE; 
 
flying()
{
    //llSay(0,"flying"); 
    flags = 0; 
    if (target == "me") target = owner; 
    if (target == "object") target = llGetKey(); 
    if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK; 
    if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK; 
    if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK; 
    if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK; 
    if (wind) flags = flags | PSYS_PART_WIND_MASK; 
    if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK; 
    if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK; 
    if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK; 
    llParticleSystem([  PSYS_PART_MAX_AGE,                         0.85,//Particle age 
                        PSYS_PART_FLAGS,                          flags,//Flags^ 
                        PSYS_SRC_PATTERN,      PSYS_SRC_PATTERN_EXPLODE,//Particle pattern 
                        PSYS_SRC_BURST_RATE,                       0.00,//Burst rate/how fast to emitt
                        PSYS_SRC_ACCEL,                   <0.0,0.0,0.0>,//Push <X,Y,X> 
                        PSYS_SRC_BURST_PART_COUNT,                   66,//How many to emitt 
                        PSYS_SRC_TARGET_KEY,                     target,//Particle target 
                        PSYS_SRC_INNERANGLE,                       1.55,//Inner angle 
                        PSYS_SRC_OUTERANGLE,                       1.54,//Outer angle 
                        PSYS_SRC_BURST_SPEED_MIN,                  0.01,//Min Speed 
                        PSYS_SRC_BURST_SPEED_MAX,                  0.10,//Max Speed 
                        PSYS_SRC_OMEGA,                   <0.0,0.0,0.0>,//Rotation 
                        PSYS_SRC_TEXTURE,"34d7dc0f-ca85-402f-8a40-0ded9cdf4f5b",//Particle texture 
                        PSYS_SRC_MAX_AGE,                           0.0,//How long to wait before stopping 
                        PSYS_SRC_BURST_RADIUS,                     4.50,//how far to begin emitting 
                        PSYS_PART_START_COLOR,         <0.55,0.75,1.55>,//Starting color 
                        PSYS_PART_END_COLOR,           <0.01,0.01,0.01>,//Ending color 
                        PSYS_PART_START_SCALE,         <0.04,0.04,0.04>,//Start size 
                        PSYS_PART_END_SCALE,           <0.05,1.55,0.05>,//End size 
                        PSYS_PART_START_ALPHA,                      1.0,//Starting visibility 
                        PSYS_PART_END_ALPHA,                        0.0//Ending visibility 
                        ]); 
} 
 
walking()
{
     // llSay(0,"walking"); 
     llParticleSystem([]); 
} 
 
away()
{ 
    //llSay(0,"afk"); 
    flags = 0; 
    if (target == "me") target = owner; 
    if (target == "object") target = llGetKey(); 
    if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK; 
    if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK; 
    if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK; 
    if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK; 
    if (wind) flags = flags | PSYS_PART_WIND_MASK; 
    if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK; 
    if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK; 
    if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK; 
    llParticleSystem([  PSYS_PART_MAX_AGE,                         10.0,//Particle age 
                        PSYS_PART_FLAGS,                          flags,//Flags^ 
                        PSYS_SRC_PATTERN,      PSYS_SRC_PATTERN_EXPLODE,//Particle pattern 
                        PSYS_SRC_BURST_RATE,                       0.00,//Burst rate/how fast to emitt
                        PSYS_SRC_ACCEL,                  <0.0,0.0,0.47>,//Push <X,Y,X> 
                        PSYS_SRC_BURST_PART_COUNT,                   66,//How many to emitt 
                        PSYS_SRC_TARGET_KEY,                     target,//Particle target 
                        PSYS_SRC_INNERANGLE,                       1.55,//Inner angle 
                        PSYS_SRC_OUTERANGLE,                       1.54,//Outer angle 
                        PSYS_SRC_BURST_SPEED_MIN,                 0.001,//Min Speed 
                        PSYS_SRC_BURST_SPEED_MAX,                 0.001,//Max Speed 
                        PSYS_SRC_OMEGA,                   <0.0,0.0,0.0>,//Rotation 
                        PSYS_SRC_TEXTURE,"9b0f8485-3b11-a9a3-7d16-3fccbcb2d7c0",//Particle texture 
                        PSYS_SRC_MAX_AGE,                           0.0,//How long to wait before stopping 
                        PSYS_SRC_BURST_RADIUS,                     2.50,//how far to begin emitting 
                        PSYS_PART_START_COLOR,         <1.00,1.00,1.00>,//Starting color 
                        PSYS_PART_END_COLOR,           <0.15,0.15,0.15>,//Ending color 
                        PSYS_PART_START_SCALE,         <0.04,0.04,0.04>,//Start size 
                        PSYS_PART_END_SCALE,           <2.22,2.22,2.22>,//End size 
                        PSYS_PART_START_ALPHA,                      1.0,//Starting visibility 
                        PSYS_PART_END_ALPHA,                        0.0//Ending visibility 
                        ]); 
} 
 
nothing()
{ 
     //llSay(0,"Idle"); 
    flags = 0; 
    if (target == "me") target = owner; 
    if (target == "object") target = llGetKey(); 
    if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK; 
    if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK; 
    if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK; 
    if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK; 
    if (wind) flags = flags | PSYS_PART_WIND_MASK; 
    if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK; 
    if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK; 
    if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK; 
    llParticleSystem([  PSYS_PART_MAX_AGE,                         2.25,//Particle age 
                        PSYS_PART_FLAGS,                          flags,//Flags^ 
                        PSYS_SRC_PATTERN,      PSYS_SRC_PATTERN_EXPLODE,//Particle pattern 
                        PSYS_SRC_BURST_RATE,                       0.00,//Burst rate/how fast to emitt
                        PSYS_SRC_ACCEL,                  <0.0,0.0,0.47>,//Push <X,Y,X> 
                        PSYS_SRC_BURST_PART_COUNT,                   66,//How many to emitt 
                        PSYS_SRC_TARGET_KEY,                     target,//Particle target 
                        PSYS_SRC_INNERANGLE,                       1.55,//Inner angle 
                        PSYS_SRC_OUTERANGLE,                       1.54,//Outer angle 
                        PSYS_SRC_BURST_SPEED_MIN,                  0.01,//Min Speed 
                        PSYS_SRC_BURST_SPEED_MAX,                  0.10,//Max Speed 
                        PSYS_SRC_OMEGA,                   <0.0,0.0,0.0>,//Rotation 
                        PSYS_SRC_TEXTURE,"b85073b6-d83f-43a3-9a89-cf882b239488",//Particle texture 
                        PSYS_SRC_MAX_AGE,                           0.0,//How long to wait before stopping 
                        PSYS_SRC_BURST_RADIUS,                     0.50,//how far to begin emitting 
                        PSYS_PART_START_COLOR,         <0.00,0.00,0.00>,//Starting color 
                        PSYS_PART_END_COLOR,           <0.15,0.15,0.15>,//Ending color 
                        PSYS_PART_START_SCALE,         <0.55,0.55,0.55>,//Start size 
                        PSYS_PART_END_SCALE,           <0.04,2.55,0.04>,//End size 
                        PSYS_PART_START_ALPHA,                      1.0,//Starting visibility 
                        PSYS_PART_END_ALPHA,                        0.0//Ending visibility 
                        ]); 
} 
 
default
{ 
    state_entry()
    { 
        dChannel = 0; 
        target = ""; 
        owner = llGetOwner(); 
        llListen(dChannel,"",owner,"");//listens in public chat 
        llSetTimerEvent(0.2); 
    }
 
    on_rez(integer tot)
    { 
        llOwnerSay("Say on channel 1 \"stop\" & \"start\" for related effects.\n(eg; /1 stop    .. or /1 start)");  
    }
 
    listen(integer number, string name, key id, string m)
    {
        if (m=="stop")
	{
            llSetTimerEvent(0.0); 
            llParticleSystem([]); 
        }
 
        else if (m=="start")
	{
            llSetTimerEvent(0.1); 
        } 
    }
 
    timer()
    {
        integer av_flying     = llGetAgentInfo(owner) & AGENT_FLYING; 
        integer av_walking    = llGetAgentInfo(owner) & AGENT_WALKING; 
        integer av_away       = llGetAgentInfo(owner) & AGENT_AWAY; 
 
        if (av_flying)
	{
            flying(); 
        }
 
        else if (av_walking)
	{
            walking(); 
        } 
 
	else if (av_away)
	{
            away(); 
        } 
 
        else
	{ 
            nothing(); 
        } 
    }
 
    changed(integer change)
    {
        if(change & CHANGED_OWNER)
        {
            llResetScript(); 
        } 
    }
}
Outils personnels
  • Cette page a été consultée 1 104 fois.
donate
Google Ads