smoke

Creating scripts
Post Reply
User avatar
Constance Peregrine
Posts: 2352
Joined: Sun Dec 23, 2012 11:35 am
Has thanked: 2780 times
Been thanked: 1487 times

smoke

Post by Constance Peregrine »

I just tested this latest smoke script in Kitely and it is very nice. Modify it as you wish-))

Code: Select all

// Makes white smoke, mist and/or fog

// Retrieved from Zero Terminal on  www.zeroterminal.com
// Author: unknown

StartSteam()
{
                                // MASK FLAGS: set  to "TRUE" to enable
integer glow = TRUE;                                // Makes the particles glow
integer bounce = FALSE;                             // Make particles bounce on Z plane of objects
integer interpColor = TRUE;                         // Color - from start value to end value
integer interpSize = TRUE;                          // Size - from start value to end value
integer wind = TRUE;                               // 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_ANGLE_CONE;

                                                    // 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 = 7;                                  // Life of each particle
    float maxSpeed = 0.02;                          // Max speed each particle is spit out at
    float minSpeed = 0.0;                           // Min speed each particle is spit out at
    string texture = "Water Particle - Mist";                     // Texture used for particles, default used if blank
    float startAlpha = .08;                         // Start alpha (transparency) value
    float endAlpha = 0.0;                           // End alpha (transparency) value
    vector startColor = <0.9,0.9,1>;                // Start color of particles <R,G,B>
    vector endColor = <1,1,1>;                      // End color of particles <R,G,B> (if interpColor == TRUE)
    vector startSize = <.25,.25,.25>;               // Start size of particles 
    vector endSize = <3,3,3>;                       // End size of particles (if interpSize == TRUE)
    vector push = <0,0,0.5>;                        // Force pushed on particles

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

                            // Script variables
                            
    integer flags;


      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
                            ]);
      
}
StartSpray ()
{

}

StopSpray()
{
    llParticleSystem([]);   
}

 

default
{
    state_entry()
    {
         StartSteam();
    }

    listen(integer channel, string name, key id, string message)
    {
 
         if (0 == llSubStringIndex(message, "spray on"))
        {
            StartSteam();
            
        }
        else if (0 == llSubStringIndex(message, "spray off"))
        {
            StopSpray();
        }
    }
}
These users thanked the author Constance Peregrine for the post (total 4):
Graham MillsSherrie MelodyOzwell WayfarerBoo Rojyo
Laissez faire et laissez passer, le monde va de lui même!
My little sounds store https://www.kitely.com/market?store=2040306

Ephemeral wanderer...
User avatar
Boo Rojyo
Posts: 29
Joined: Wed Sep 04, 2013 7:47 pm
Has thanked: 60 times
Been thanked: 38 times

Re: smoke

Post by Boo Rojyo »

Thanks for that, nice script.

I found I had a script error though until I deleted the last "}" on line 130.
User avatar
Constance Peregrine
Posts: 2352
Joined: Sun Dec 23, 2012 11:35 am
Has thanked: 2780 times
Been thanked: 1487 times

Re: smoke

Post by Constance Peregrine »

odd...ok....i must have missed seeing that, or, things changed....lol

glad to be of some help to ya Boo-))
Laissez faire et laissez passer, le monde va de lui même!
My little sounds store https://www.kitely.com/market?store=2040306

Ephemeral wanderer...
Post Reply