Advertisement
Guest User

Untitled

a guest
Jul 11th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Particle Script 0.3
  2. // Created by Ama Omega
  3. // 10-10-2003
  4. integer Step = 0;
  5. // Mask Flags - set to TRUE to enable
  6. integer glow = TRUE;            // Make the particles glow
  7. integer bounce = FALSE;          // Make particles bounce on Z plan of object
  8. integer interpColor = TRUE;     // Go from start to end color
  9. integer interpSize = FALSE;      // Go from start to end size
  10. integer wind = FALSE;           // Particles effected by wind
  11. integer followSource = FALSE;    // Particles follow the source
  12. integer followVel = FALSE;       // Particles turn to velocity direction
  13.  
  14. // Choose a pattern from the following:
  15. // PSYS_SRC_PATTERN_EXPLODE
  16. // PSYS_SRC_PATTERN_DROP
  17. // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
  18. // PSYS_SRC_PATTERN_ANGLE_CONE
  19. // PSYS_SRC_PATTERN_ANGLE
  20. integer pattern = PSYS_SRC_PATTERN_DROP;
  21.  
  22. // Select a target for particles to go towards
  23. // "" for no target, "owner" will follow object owner
  24. //    and "self" will target this object
  25. //    or put the key of an object for particles to go to
  26. key target = "";
  27.  
  28. // Particle paramaters
  29. float age = 133;                  // Life of each particle
  30. float maxSpeed = .1;            // Max speed each particle is spit out at
  31. float minSpeed = .1;            // Min speed each particle is spit out at
  32. string texture = "59f587f3-f9ad-cb73-57b2-eb3de678f2d6";                 // Texture used for particles, default used if blank
  33. float startAlpha = 1.0;           // Start alpha (transparency) value
  34. float endAlpha = 0.0;           // End alpha (transparency) value
  35. vector startColor = <0,0,0>;    // Start color of particles <R,G,B>
  36. vector endColor = <0,0,0>;      // End color of particles <R,G,B> (if interpColor == TRUE)
  37. vector startSize = <.4,.2,.7>;     // Start size of particles
  38. vector endSize = <.4,.4,.7>;       // End size of particles (if interpSize == TRUE)
  39. vector push = <0,0,0.0>;          // Force pushed on particles
  40.  
  41. // System paramaters
  42. float rate = .3;            // How fast (rate) to emit particles
  43. float radius = .1;          // Radius to emit particles for BURST pattern
  44. integer count = 1;        // How many particles to emit per BURST
  45. float outerAngle = 1.54;    // Outer angle for all ANGLE patterns
  46. float innerAngle = 1.55;    // Inner angle for all ANGLE patterns
  47. vector omega = <0,0,10>;    // Rotation of ANGLE patterns around the source
  48. float life = 0;             // Life in seconds for the system to make particles
  49.  
  50. // Script variables
  51. integer flags;
  52.  
  53. updateParticles()
  54. {
  55.     flags = 0;
  56.     if (target == "owner") target = llGetOwner();
  57.     if (target == "self") target = llGetKey();
  58.     if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
  59.     if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
  60.     if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
  61.     if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
  62.     if (wind) flags = flags | PSYS_PART_WIND_MASK;
  63.     if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
  64.     if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
  65.     if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
  66.     vector C;
  67.     if(Step==0)
  68.         C = <1,0,0>;
  69.     else if(Step==1)
  70.         C = <1,0.5,0>;
  71.     else if(Step==2)
  72.         C = <1,1,0>;
  73.     else if(Step==3)
  74.         C = <0,1,0>;
  75.     else if(Step==4)
  76.         C = <0,0,1>;
  77.     else if(Step==5)
  78.         C = <0.5,0,1>;
  79.     else if(Step==6)
  80.         C = <1,0,0.5>;
  81.     Step++;
  82.     if(Step==7) Step = 0;
  83.     llParticleSystem([  PSYS_PART_MAX_AGE,age,
  84.                         PSYS_PART_FLAGS,flags,
  85.                         PSYS_PART_START_COLOR, C,
  86.                         PSYS_PART_END_COLOR, C,
  87.                         PSYS_PART_START_SCALE,startSize,
  88.                         PSYS_PART_END_SCALE,endSize,
  89.                         PSYS_SRC_PATTERN, pattern,
  90.                         PSYS_SRC_BURST_RATE,rate,
  91.                         PSYS_SRC_ACCEL, push,
  92.                         PSYS_SRC_BURST_PART_COUNT,count,
  93.                         PSYS_SRC_BURST_RADIUS,radius,
  94.                         PSYS_SRC_BURST_SPEED_MIN,minSpeed,
  95.                         PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
  96.                         PSYS_SRC_TARGET_KEY,target,
  97.                         PSYS_SRC_INNERANGLE,innerAngle,
  98.                         PSYS_SRC_OUTERANGLE,outerAngle,
  99.                         PSYS_SRC_OMEGA, omega,
  100.                         PSYS_SRC_MAX_AGE, life,
  101.                         PSYS_SRC_TEXTURE, texture,
  102.                         PSYS_PART_START_ALPHA, startAlpha,
  103.                         PSYS_PART_END_ALPHA, endAlpha
  104.                             ]);
  105. }
  106.  
  107. default
  108. {
  109.     state_entry()
  110.     {
  111.         updateParticles();
  112.         llSetTimerEvent(.6);
  113.     }
  114.  
  115.     timer()
  116.     {
  117.         string anim = llGetAnimation(llGetOwner());
  118.         if ((anim == "Walking") || (anim == "Running") || (anim == "Turning Left") || (anim == "Turning Right") || (anim == "CrouchWalking"))
  119.         {
  120.             updateParticles();
  121.         }
  122.         else
  123.         {
  124.             llParticleSystem([]);
  125.         }
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement