PSYS Template
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
PSYS Template
Important: You might want to use llLinkParticleSystem instead of llParticleSystem dependant upon the desired effects. |
--BETLOG Hax SLT: July 9th 2009
All of the flags for making particles in a script with important inter-relationship comments only.
(declaring a bunch of variables instead of just learning to read the actual flag names is stupid)
integer hasParticleEffect = TRUE;
list particle_effects()
{
return
[PSYS_PART_FLAGS, ( 0
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_INTERP_SCALE_MASK
| PSYS_PART_EMISSIVE_MASK
// | PSYS_PART_WIND_MASK
// | PSYS_PART_BOUNCE_MASK
// | PSYS_PART_FOLLOW_SRC_MASK //disables BURST_RADIUS
// | PSYS_PART_FOLLOW_VELOCITY_MASK
// | PSYS_PART_TARGET_POS_MASK //target TARGET_KEY
// | PSYS_PART_TARGET_LINEAR_MASK //requires TARGET_KEY disables ACCEL, BURST_RADIUS
),
PSYS_PART_START_COLOR, <1.0, 0.5, 0.0>,
PSYS_PART_START_ALPHA, 1.0,
PSYS_PART_END_COLOR, <0.3, 0.0, 0.0>,
PSYS_PART_END_ALPHA, 0.0,
PSYS_PART_START_SCALE, <0.5, 0.5, 0>,
PSYS_PART_END_SCALE, <0.5, 0.5, 0>,
PSYS_PART_MAX_AGE, 1.0,
PSYS_SRC_ACCEL, ZERO_VECTOR,
PSYS_SRC_PATTERN, 8,
// DROP (1), EXPLODE (2), ANGLE (4), ANGLE_CONE (8), ANGLE_CONE_EMPTY (10)
// 1 - disables BURST_RADIUS, BURST_SPEED_MIN, BURST_SPEED_MAX
// 4/8/10 - requires ANGLE_BEGIN, ANGLE_END
PSYS_SRC_TEXTURE, "",
PSYS_SRC_BURST_RATE, 0.05,
PSYS_SRC_BURST_PART_COUNT, 4,
PSYS_SRC_BURST_RADIUS, 1.0,
PSYS_SRC_BURST_SPEED_MIN, 0.0,
PSYS_SRC_BURST_SPEED_MAX, 0.1,
PSYS_SRC_MAX_AGE, 0.0,
PSYS_SRC_TARGET_KEY, NULL_KEY,
PSYS_SRC_OMEGA, ZERO_VECTOR,
PSYS_SRC_ANGLE_BEGIN, 0.5,
PSYS_SRC_ANGLE_END, 0.5];
}
toggle_particles()
{
hasParticleEffect = !hasParticleEffect;
if (hasParticleEffect)
// {
llParticleSystem( particle_effects() );
// }
else
// {
llParticleSystem([]);
// }
}
default
{
on_rez(integer start_param)
{
llResetScript();
}
state_entry()
{
toggle_particles();
}
touch_start(integer num_detected)
{
toggle_particles();
}
}