Difference between revisions of "LlMakeSmoke"

From Second Life Wiki
Jump to navigation Jump to search
m (<lsl> tag to <source>)
 
(17 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{LSLFunctionAll|func_id=102|func_sleep=0.1|func_energy=10.0|func=llMakeSmoke|p1_type=integer|p1_name=particles|p2_type=float|p2_name=scale|p3_type=float|p3_name=vel|p4_type=float|p4_name=lifetime|p5_type=float|p5_name=arc|p6_type=string|p6_name=texture|p7_type=vector|p7_name=offset|func_footnote=Make smoke like particles|deprecated=llParticleSystem|return_text|spec|caveats|examples|helpers|related|also|notes}}[[Category:LSL_Functions]][[Category:LSL_Stub]]
{{LSL_Function
|inject-2={{LSL Function/offset|offset|dead=*}}{{LSL Function/inventory|texture|type=texture|uuid=true}}
|func=llMakeSmoke
|sort=MakeSmoke
|func_id=102|func_sleep=0.1|func_energy=10.0
|p1_type=integer|p1_name=particles
|p2_type=float|p2_name=scale
|p3_type=float|p3_name=vel
|p4_type=float|p4_name=lifetime
|p5_type=float|p5_name=arc
|p6_type=string|p6_name=texture
|p7_type=vector|p7_name=offset
|func_footnote
|func_desc=Make smoke like particles
|return_text
|spec
|caveats
|constants
|examples
|helpers
|also_functions
|also_events
|also_tests
|also_articles
|notes=
Beginning in 1.14, the simulator will be using llParticleSystem to emulate legacy llMakeSmoke particles.
<source lang="lsl2">
llMakeSmoke(integer particle_count,
          float particle_scale,
          float particle_speed,
          float particle_lifetime,
          float source_cone,
          string source_texture_id,
          vector local_offset);
</source>
<source lang="lsl2">
fakeMakeSmoke(integer particle_count, float particle_scale, float particle_speed,
            float particle_lifetime, float source_cone, string source_texture_id,
            vector local_offset)
{
//      local_offset is ignored
  llParticleSystem([
      PSYS_PART_FLAGS,            PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_WIND_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,      1.00,
      PSYS_PART_END_ALPHA,        0.05,
      PSYS_PART_START_SCALE,      <particle_scale, particle_scale, 0.0>,
      PSYS_PART_END_SCALE,        <10, 10, 0.0>,
      PSYS_PART_MAX_AGE,          3.0,
      PSYS_SRC_ACCEL,            <0.0, 0.0, 0.0>,
      PSYS_SRC_TEXTURE,          source_texture_id,
      PSYS_SRC_BURST_RATE,        10.0 / 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 discrepancies:
//    1) The original llMakeSmoke has random particle lifetime, which cannot be
//      created in the current particle system via a single call
//    2) The original llMakeSmoke has continual particle growth throughout its
//      lifetime, ending well past the 4m limit of the current system, on long lived
//      particles
//    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
</source>
|cat1
|cat2
|cat3=Effects
|cat4=Particles
|deprecated=llParticleSystem
}}

Latest revision as of 13:52, 22 January 2015

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

Summary

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

Make smoke like particles

• integer particles
• float scale
• float vel
• float lifetime
• float arc
• string texture a texture in the inventory of the prim this script is in or a UUID of a texture
• vector offset offset relative to the prim's position and expressed in local coordinates and is completely ignored.

Caveats

  • This function causes the script to sleep for 0.1 seconds.
  • This function has been deprecated, please use llParticleSystem instead.
  • offset functionality has been removed, any value provided is completely ignored. For future proofing purposes, you should use a ZERO_VECTOR for it's value.
  • If texture is missing from the prim's inventory and it is not a UUID or it is not a texture then an error is shouted on DEBUG_CHANNEL.
  • If texture is a UUID then there are no new asset permissions consequences for the object.
    • The resulting object develops no new usage restrictions that might have occurred if the asset had been placed in the prims inventory.
All Issues ~ Search JIRA for related Bugs

Examples

Notes

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

llMakeSmoke(integer particle_count,
           float particle_scale,
           float particle_speed,
           float particle_lifetime,
           float source_cone,
           string source_texture_id,
           vector local_offset);
fakeMakeSmoke(integer particle_count, float particle_scale, float particle_speed,
             float particle_lifetime, float source_cone, string source_texture_id,
             vector local_offset)
{
//       local_offset is ignored
   llParticleSystem([
       PSYS_PART_FLAGS,            PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_WIND_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,      1.00,
       PSYS_PART_END_ALPHA,        0.05,
       PSYS_PART_START_SCALE,      <particle_scale, particle_scale, 0.0>,
       PSYS_PART_END_SCALE,        <10, 10, 0.0>,
       PSYS_PART_MAX_AGE,          3.0,
       PSYS_SRC_ACCEL,             <0.0, 0.0, 0.0>,
       PSYS_SRC_TEXTURE,           source_texture_id,
       PSYS_SRC_BURST_RATE,        10.0 / 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 discrepancies:
//    1) The original llMakeSmoke has random particle lifetime, which cannot be
//       created in the current particle system via a single call
//    2) The original llMakeSmoke has continual particle growth throughout its
//       lifetime, ending well past the 4m limit of the current system, on long lived
//       particles
//    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

Deep Notes

Search JIRA for related Issues

Signature

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