Simple Shower Particle Script

// Simple shower script.
// If you want the "droplet" texture, give me a shout (IM in-world)
//
// Particle Template from: http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryKeknehvParticles
//
// Kimm Paulino
// March 2012
 
integer gState = 0;
 
StartWaterBurst ()
{
    llParticleSystem([                   //KPSv1.0  
        PSYS_PART_FLAGS , 0 //Comment out any of the following masks to deactivate them
    //| PSYS_PART_BOUNCE_MASK           //Bounce on object's z-axis
    //| PSYS_PART_WIND_MASK             //Particles are moved by wind
    | PSYS_PART_INTERP_COLOR_MASK       //Colors fade from start to end
    | PSYS_PART_INTERP_SCALE_MASK       //Scale fades from beginning to end
    //| PSYS_PART_FOLLOW_SRC_MASK         //Particles follow the emitter
    //| PSYS_PART_FOLLOW_VELOCITY_MASK    //Particles are created at the velocity of the emitter
    //| PSYS_PART_TARGET_POS_MASK       //Particles follow the target
    | PSYS_PART_EMISSIVE_MASK           //Particles are self-lit (glow)
    //| PSYS_PART_TARGET_LINEAR_MASK    //Undocumented--Sends particles in straight line?
    ,
 
    //PSYS_SRC_TARGET_KEY , NULL_KEY,   //Key of the target for the particles to head towards
                                                //This one is particularly finicky, so be careful.
    //Choose one of these as a pattern:
    //PSYS_SRC_PATTERN_DROP                 Particles start at emitter with no velocity
    //PSYS_SRC_PATTERN_EXPLODE              Particles explode from the emitter
    //PSYS_SRC_PATTERN_ANGLE                Particles are emitted in a 2-D angle
    //PSYS_SRC_PATTERN_ANGLE_CONE           Particles are emitted in a 3-D cone
    //PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY     Particles are emitted everywhere except for a 3-D cone
 
    PSYS_SRC_PATTERN,           PSYS_SRC_PATTERN_ANGLE_CONE
 
    ,PSYS_SRC_TEXTURE, "droplet"
    //,PSYS_SRC_TEXTURE,           ""                 //UUID of the desired particle texture, or inventory name
    ,PSYS_SRC_MAX_AGE,           0.0                //Time, in seconds, for particles to be emitted. 0 = forever
    ,PSYS_PART_MAX_AGE,          2.0                //Lifetime, in seconds, that a particle lasts
    ,PSYS_SRC_BURST_RATE,        0.0                //How long, in seconds, between each emission
    ,PSYS_SRC_BURST_PART_COUNT,  10                  //Number of particles per emission
    ,PSYS_SRC_BURST_RADIUS,      0.0                //Radius of emission
    ,PSYS_SRC_BURST_SPEED_MIN,   1.0                //Minimum speed of an emitted particle
    ,PSYS_SRC_BURST_SPEED_MAX,   2.0               //Maximum speed of an emitted particle
    ,PSYS_SRC_ACCEL,             <0.0,0.0,-2.0>     //Acceleration of particles each second
    ,PSYS_PART_START_COLOR,      <0.9,0.9,1.0>      //Starting RGB color
    ,PSYS_PART_END_COLOR,        <0.7,0.7,1.0>      //Ending RGB color, if INTERP_COLOR_MASK is on 
    ,PSYS_PART_START_ALPHA,      0.7                //Starting transparency, 1 is opaque, 0 is transparent.
    ,PSYS_PART_END_ALPHA,        0.5                //Ending transparency
    ,PSYS_PART_START_SCALE,      <0.05,0.05,0.0>      //Starting particle size
    ,PSYS_PART_END_SCALE,        <0.12,0.12,0.0>      //Ending particle size, if INTERP_SCALE_MASK is on
    ,PSYS_SRC_ANGLE_BEGIN,       0                 //Inner angle for ANGLE patterns
    ,PSYS_SRC_ANGLE_END,         PI / 6.0           //Outer angle for ANGLE patterns
    ,PSYS_SRC_OMEGA,             <0.0,0.0,0.0>      //Rotation of ANGLE patterns, similar to llTargetOmega()
            ]);
}
 
WaterStop()
{
    llParticleSystem ([]);
}
 
 
default
{    
    state_entry()
    {
        gState = 0;
    }
 
    touch_start( integer num )
    {
        gState++;
        if (gState > 1)
        {
            gState = 0;
        }
 
        if (gState == 1)
        {
            StartWaterBurst();
        }
        else
        {
            WaterStop();
        }
    }
}

 

Smoke

float gTimeout = 3.0;

default
{
    state_entry()
    {

    }

    attach(key id)
    {
        if (id != NULL_KEY)
        {
            llSetTimerEvent(0.0);
            llSetTimerEvent(gTimeout);
        }
        else
        {
            llSetTimerEvent(0.0);
        }
    }
    
    timer()
    {
        llMakeFire(
        2,  // nParticles
        1.0,  // scale
        1.0,  // velocity
        5.0,  // lifetime
        2*PI, // arc
        "smoke1",
        <0.0, 0.0, 1.0> // offset
        ); 
    }       
}

 

Waterfall Mist

//Title: Vendor to Sell to Only One Person
//Date: 01-28-2004 04:38 PM
//Version: 1.0.0
//Scripter: Ama Omega
//
string name = "Nameofpersonbuying";
integer price = 10; // adjust accordingly
string item = "nameofitem";

default
{
   state_entry()
   {
      llRequestPermissions( llGetOwner(), PERMISSION_DEBIT );
   }
   run_time_permissions(integer perms)
   {
      if (perms & PERMISSION_DEBIT)
         state run;
   }
}

state run
{
   money(key id, integer amount)
   {
      if (llKey2Name(id) == name)
      {
         if (amount != price)
         {
            llWhisper(0,"Sorry!  The price is $" + (string)price);
            llGiveMoney(id,amount);
         }
         else
         {
            llGiveInventory(id,item);
            llInstantMessage(llGetOwner(),name + " bought their item.");
            state sold;
         }
      }
      else
      {
         llWhisper(0,"Sorry I'm only selling this to " + name);
         llGiveMoney(id,amount);
      }
   }
}

state sold
{
   state_entry() { }
}

 

Shine Script

// Particle Script 0.3
// Created by Ama Omega
// 10-10-2003

// Mask Flags - set to TRUE to enable
integer glow = TRUE;            // Make the particles glow
integer bounce = FALSE;          // Make particles bounce on Z plan of object
integer interpColor = TRUE;     // Go from start to end color
integer interpSize = TRUE;      // Go from start to end size
integer wind = FALSE;           // Particles effected by wind
integer followSource = FALSE;    // Particles follow the source
integer followVel = TRUE;       // Particles turn to velocity direction

// Choose a pattern from the following:
// PSYS_SRC_PATTERN_EXPLODE
// PSYS_SRC_PATTERN_DROP
// PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
// PSYS_SRC_PATTERN_ANGLE_CONE
// PSYS_SRC_PATTERN_ANGLE
integer pattern = PSYS_SRC_PATTERN_EXPLODE;

// Select a target for particles to go towards
// "" for no target, "owner" will follow object owner 
//    and "self" will target this object
//    or put the key of an object for particles to go to
key target = "";

// Particle paramaters
float age = .1;                  // Life of each particle
float maxSpeed = .1;            // Max speed each particle is spit out at
float minSpeed = .1;            // Min speed each particle is spit out at
string texture;                 // Texture used for particles, default used if blank
float startAlpha = 10;           // Start alpha (transparency) value
float endAlpha = 10;           // End alpha (transparency) value
vector startColor = <1 ,1,1>;    // Start color of particles 
vector endColor = <1 ,1,1>;      // End color of particles  (if interpColor == TRUE)
vector startSize = <.05,.5,.05>;     // Start size of particles 
vector endSize = <.05,.5,.05>;       // End size of particles (if interpSize == TRUE)
vector push = <0,0,0>;          // Force pushed on particles

// System paramaters
float rate = 2;            // How fast (rate) to emit particles
float radius = .0;          // Radius to emit particles for BURST pattern
integer count = 5;        // How many particles to emit per BURST 
float outerAngle = 1.54;    // Outer angle for all ANGLE patterns
float innerAngle = 1.55;    // Inner angle for all ANGLE patterns
vector omega = <0,0,10>;    // Rotation of ANGLE patterns around the source
float life = 0;             // Life in seconds for the system to make particles

// Script variables
integer flags; 

updateParticles()
{
    flags = 0;
    if (target == "owner") target = llGetOwner();
    if (target == "self") 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,age,
                        PSYS_PART_FLAGS,flags,
                        PSYS_PART_START_COLOR, startColor,
                        PSYS_PART_END_COLOR, endColor,
                        PSYS_PART_START_SCALE,startSize,
                        PSYS_PART_END_SCALE,endSize, 
                        PSYS_SRC_PATTERN, pattern,
                        PSYS_SRC_BURST_RATE,rate,
                        PSYS_SRC_ACCEL, push,
                        PSYS_SRC_BURST_PART_COUNT,count,
                        PSYS_SRC_BURST_RADIUS,radius,
                        PSYS_SRC_BURST_SPEED_MIN,minSpeed,
                        PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
                        PSYS_SRC_TARGET_KEY,target,
                        PSYS_SRC_INNERANGLE,innerAngle, 
                        PSYS_SRC_OUTERANGLE,outerAngle,
                        PSYS_SRC_OMEGA, omega,
                        PSYS_SRC_MAX_AGE, life,
                        PSYS_SRC_TEXTURE, texture,
                        PSYS_PART_START_ALPHA, startAlpha,
                        PSYS_PART_END_ALPHA, endAlpha
                            ]);
}

default
{
    state_entry()
    {
        updateParticles();
    }
}