Difference between revisions of "LlMakeFountain"

From Second Life Wiki
Jump to navigation Jump to search
Line 22: Line 22:
}}
}}


todo: Write an equivalent llParticleSystem example script that duplicates the functionality of this particle command.
 
Beginning in 1.14, the simulator will be using llParticleSystem to emulate legacy llMakeFountain particles.
 
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,
              vector bounce_offset);
 
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)
{
//      local_offset is ignored
//      bounce is ignored
//      bounce_offset is ignored
  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>      ]);
}
//    Known discrepencies:
//    1) The bounce level is not adjustable with the new particle system,
//      it will be fixed to 0
//    2) The original llMakeFountain has random particle lifetime, which cannot be
//      created in the current particle system via a single call
  //    3) several values are not taken 'verbatim' in the original particle system
//      (velocity is not m/sec for instance, and number of particles seems to be
//      wildly off), these are approximated loosely in this simulation via basic
//      divisors, which may not work out the same in some scenarios
  //    4) There is no way to duplicate the offset from the old functions within the
//      new particle system

Revision as of 17:16, 23 March 2007

Emblem-important.png Deprecated
(This function has been deprecated, please use llParticleSystem instead.)

Summary

Function: llMakeFountain( integer particles, float scale, float vel, float lifetime, float arc, integer bounce, string texture, vector offset, float bounce_offset );

Make a fountain of particles

• integer particles
• float scale
• float vel
• float lifetime
• float arc
• integer bounce
• string texture
• vector offset
• float bounce_offset

Caveats

  • This function causes the script to sleep for 0.1 seconds.
  • This function has been deprecated, please use llParticleSystem instead.
All Issues ~ Search JIRA for related Bugs

Examples

Deep Notes

Search JIRA for related Issues

Signature

function void llMakeFountain( integer particles, float scale, float vel, float lifetime, float arc, integer bounce, string texture, vector offset, float bounce_offset );


Beginning in 1.14, the simulator will be using llParticleSystem to emulate legacy llMakeFountain particles.

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,
             vector bounce_offset);
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)
{
//       local_offset is ignored
//       bounce is ignored
//       bounce_offset is ignored
  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>      ]);
}
//    Known discrepencies:
//    1) The bounce level is not adjustable with the new particle system,
//       it will be fixed to 0
//    2) The original llMakeFountain has random particle lifetime, which cannot be
//       created in the current particle system via a single call
 //    3) several values are not taken 'verbatim' in the original particle system
//       (velocity is not m/sec for instance, and number of particles seems to be
//       wildly off), these are approximated loosely in this simulation via basic
//       divisors, which may not work out the same in some scenarios
 //    4) There is no way to duplicate the offset from the old functions within the
//       new particle system