Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Particle people in da house?

Mike Zidane
Registered User
Join date: 10 Apr 2004
Posts: 255
01-27-2005 17:03
When I set my "follows source" to FALSE, my particle emmitter stops working.

Any ideas?

Here's the script so you can see it for yourself. (this actually workse, set followsource to false to break it.

CODE

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

// Mask Flags - set to TRUE to enable
integer glow = FALSE; // 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 = TRUE; // Particles effected by wind
integer followSource = TRUE; // Particles follow the source
integer followVel = FALSE; // 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 = 15; // Life of each particle
float maxSpeed = 0.75; // Max speed each particle is spit out at
float minSpeed = 0.25; // Min speed each particle is spit out at
string texture = "fda6b800-b2c5-e859-5c1a-27a88457f7df"; // Texture used for particles, default used if blank
float startAlpha = 0.5; // Start alpha (transparency) value
float endAlpha = 0.1; // End alpha (transparency) value
vector startColor = <1,1,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 = <0.1,0.1,0.1>; // Start size of particles
vector endSize = <0.25,0.25,0.25>; // End size of particles (if interpSize == TRUE)
vector push = <0,0,0.000>; // Force pushed on particles

// System paramaters
float rate = 0.1; // How fast (rate) to emit particles
float radius = 15; // Radius to emit particles for BURST pattern
integer count = 1; // How many particles to emit per BURST
float outerAngle = 0.0; // Outer angle for all ANGLE patterns
float innerAngle = 0.00; // 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;

updateParticles()
{
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();
}
}
_____________________
I'm only faking when I get it right. - CC
Leena Khan
Lasting Impressionist
Join date: 21 Apr 2004
Posts: 200
01-27-2005 19:02
I took a look..

Your culprit is this line:
float radius = 15; // Radius to emit particles for BURST pattern

Your emitting these bubbles in a 15m radius.. so few are coming out its hard to catch.
But with this line:
integer followSource = TRUE; // Particles follow the source

The radius is ignored.

So there you have it :)

EDIT: Forgot to spell checj :/
_____________________
SL was down, and all I got was this stupid signature...
Mike Zidane
Registered User
Join date: 10 Apr 2004
Posts: 255
01-27-2005 22:29
damnable recycled scripts. thank you.
_____________________
I'm only faking when I get it right. - CC