Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Motionless, Stationary Particles

SkyWhisper Rexen
Registered User
Join date: 13 Oct 2008
Posts: 1
02-09-2010 06:04
My goal is to have a particle or particles appear about 3 meters from the center of the emitter, stay in place for several seconds with no movement and then fade/die.

Is it possible to do this using PSYS_SRC_PATTERN_EXPLODE?

I've been able to minimize motion to be very slow using low BURST speeds and SYS_SRC_ACCEL with negative numbers, but motion is still perceptible.

Trying another tack, using PSYS_SRC_PATTERN_DROP, I can make a particle motionless but only within the center of the emitting prim. I can't make them appear 3 meters out but remain still.

I'm not a scripter, only a particle tinkerer so I'm hoping the answer, if there is one, lies within the llParticleSystem framework. I guess I'm hoping that I'm on the right track but missing the correct combination of parameters.
Beverly Ultsch
Registered User
Join date: 6 Sep 2007
Posts: 229
02-09-2010 06:26
Rather than go into the details I'll just point you in the direction of this thread.

/8/a0/26220/1.html
Innula Zenovka
Registered User
Join date: 20 Jun 2007
Posts: 1,825
02-09-2010 06:27
Have a play with this, cribbed from Jesse Barnett's particle map display at /54/bf/225460/6.html#post2228844

CODE


float mapSize = 2.5; // size of particle
float mapHeight = 3.0; // how high above prim to display it
string mapTexture;

integer toggle;

mapParticle()
{
llParticleSystem([
PSYS_PART_FLAGS, 0,
PSYS_SRC_PATTERN, 4,
PSYS_PART_START_ALPHA, 1.0,
PSYS_PART_END_ALPHA, 1.0,
PSYS_PART_START_COLOR, <1.0,1.0,1.0>,
PSYS_PART_END_COLOR, <1.0,1.0,1.0>,
PSYS_PART_START_SCALE, < mapSize,mapSize,0.00 >,
PSYS_PART_END_SCALE, < mapSize,mapSize,0.00 >,
PSYS_PART_MAX_AGE, 5.0, // how long to display for
PSYS_SRC_MAX_AGE, 0.00,
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,
PSYS_SRC_ANGLE_BEGIN, 0.00,
PSYS_SRC_ANGLE_END, 0.00,
PSYS_SRC_BURST_PART_COUNT, 1,
PSYS_SRC_BURST_RADIUS, mapHeight,
PSYS_SRC_BURST_RATE, 10.0, // how often to emit a particle
PSYS_SRC_BURST_SPEED_MIN, 0.00,
PSYS_SRC_BURST_SPEED_MAX, 0.00,
PSYS_SRC_OMEGA, <0.00,0.00,0.00>,
PSYS_SRC_TEXTURE, mapTexture]);
}

default
{
state_entry()
{
mapTexture = llGetInventoryName(INVENTORY_TEXTURE,0);
llParticleSystem([]);
}

touch_start(integer total_number)
{
toggle =!toggle;
if(toggle){
mapParticle();
}
else{
llParticleSystem([]);
}
}

changed(integer change){
if(change & CHANGED_INVENTORY){
llResetScript();
}
}
}