Skip to content

llMakeFountain

Deprecated
void llMakeFountain(integer Particles, float Scale, float Velocity, float Lifetime, float Arc, integer Bounce, string Texture, vector Offset, float Bounce_Offset)

Make a fountain of particles. Deprecated: Use llParticleSystem instead.

Make a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.

Parameters
Particles (integer)
Scale (float)
Velocity (float)
Lifetime (float)
Arc (float)
Bounce (integer)
Texture (string)
Offset (vector)
Bounce_Offset (float)

Beginning in version 1.14, the simulator uses llParticleSystem to emulate legacy llMakeFountain particles. This function is deprecated and you should use llParticleSystem for new scripts.

The original function signature:

llMakeFountain(integer particle_count,
float particle_scale,
float particle_speed,
float particle_lifetime,
float source_cone,
integer source_bounce,
string source_texture_id,
vector local_offset,
float bounce_offset);

Below is an example of how to emulate the old llMakeFountain behavior using llParticleSystem:

fakeMakeFountain(integer particle_count, float particle_scale, float particle_speed,
float particle_lifetime, float source_cone, integer bounce,
string source_texture_id, vector local_offset, vector bounce_offset)
{
// Note: local_offset, bounce, and bounce_offset are not used in this emulation
llParticleSystem([
PSYS_PART_FLAGS, PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_WIND_MASK | PSYS_PART_BOUNCE_MASK | PSYS_PART_EMISSIVE_MASK,
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE,
PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>,
PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>,
PSYS_PART_START_ALPHA, 0.50,
PSYS_PART_END_ALPHA, 0.25,
PSYS_PART_START_SCALE, <particle_scale/1.5, particle_scale/1.5, 0.0>,
PSYS_PART_END_SCALE, <0.0, 0.0, 0.0>,
PSYS_PART_MAX_AGE, 3.0,
PSYS_SRC_ACCEL, <1.0, 0.0, -4>,
PSYS_SRC_TEXTURE, source_texture_id,
PSYS_SRC_BURST_RATE, 5/particle_count,
PSYS_SRC_ANGLE_BEGIN, 0.0,
PSYS_SRC_ANGLE_END, source_cone*PI,
PSYS_SRC_BURST_PART_COUNT, 1,
PSYS_SRC_BURST_RADIUS, 0.0,
PSYS_SRC_BURST_SPEED_MIN, particle_speed,
PSYS_SRC_BURST_SPEED_MAX, particle_speed,
PSYS_SRC_MAX_AGE, particle_lifetime/2,
PSYS_SRC_OMEGA, <0.0, 0.0, 0.0>
]);
}

When migrating from llMakeFountain to llParticleSystem, be aware of these limitations:

  1. Bounce level - Not adjustable with the new particle system; fixed to 0
  2. Particle lifetime - The original function had random particle lifetime, which cannot be created in the current particle system via a single call
  3. Velocity and particle count - Several values are not taken verbatim in the original particle system (velocity is not in m/sec, particle count may differ significantly). These are approximated loosely in the simulation via basic divisors, which may not work out the same in all scenarios
  4. Offset parameters - There is no way to duplicate the offset from the old function within the new particle system