Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.97 KB | None | 0 0
  1. //KCP _ACSv7.0 - ParticleSystem
  2. //(c)2014 Karyn Vaher - All Rights Reserved
  3. //This script set, current or previous versions, is only for redistribution as part of a scripted vehicle, with permissions set to NO MOD and NO TRANSFER
  4. //Resale of any section of this code or emulation of the unique operational flow of this system for resale is in violation of software copyright and subject to DMCA
  5. //Code is not to be exported from Second Life to alternate grids. Exceptions granted to any or all conditions only by commercial licensing agreement.
  6.  
  7.  
  8. integer TracksAlwaysOn = FALSE; //Set to TRUE for constant tire tracks particles while vehicle is moving.
  9. integer TracksCornerFX = FALSE; //If using the CornerFX system, set this to TRUE to trigger tracks when CornerFX is engaged.
  10.  
  11. //BURNOUT PARTICLES
  12. particles_burnout(integer x)
  13. {
  14. llLinkParticleSystem(x,[
  15. //PASTE YOUR PARTICLE SYSTEM HERE:
  16. PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE,
  17. PSYS_SRC_BURST_PART_COUNT, 25,
  18. PSYS_SRC_BURST_RATE, 0.05,
  19. PSYS_PART_MAX_AGE, 7.00,
  20. PSYS_SRC_BURST_RADIUS, 0.15,
  21. PSYS_SRC_ACCEL, <0.0, 2.0, 0.0>,
  22. PSYS_SRC_ANGLE_BEGIN, 0.00,
  23. PSYS_SRC_ANGLE_END, 3.141593,
  24. PSYS_SRC_BURST_SPEED_MIN, 0.1,
  25. PSYS_SRC_BURST_SPEED_MAX, 1.5,
  26. PSYS_SRC_OMEGA, <9.0, 9.0, 9.0>,
  27. PSYS_PART_END_SCALE, <2.0, 2.0, 2.0>,
  28. PSYS_PART_START_SCALE, <1.0, 1.0, 1.0>,
  29. PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>,//Change Color Here
  30. PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>,//Change Color Here
  31. PSYS_PART_END_ALPHA, 0.3,
  32. PSYS_PART_START_ALPHA, 0.6,
  33. PSYS_PART_FLAGS, PSYS_PART_WIND_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK
  34. //END OF YOUR PARTICLE SYSTEM
  35. ]);
  36. }
  37.  
  38. //EXHAUST PARTICLES
  39. particles_exhaust(integer x)
  40. {
  41. llLinkParticleSystem(x,[
  42. //PASTE YOUR PARTICLE SYSTEM HERE:
  43. PSYS_PART_START_ALPHA, 0.1,
  44. PSYS_PART_END_ALPHA, 0.01,
  45. PSYS_PART_START_COLOR, <0.0, 0.0, 0.5>,//Change Color Here
  46. PSYS_PART_END_COLOR, <0.0, 0.0, 0.5>,//Change Color Here
  47. PSYS_PART_START_SCALE, <0.25,0.25,0.25>,
  48. PSYS_PART_END_SCALE, <1.0,1.0,1.0>,
  49. PSYS_PART_MAX_AGE, 3.0,
  50. PSYS_SRC_ACCEL, ZERO_VECTOR,
  51. PSYS_SRC_ANGLE_BEGIN, PI,
  52. PSYS_SRC_ANGLE_END, PI,
  53. PSYS_SRC_BURST_PART_COUNT, 5,
  54. PSYS_SRC_BURST_RADIUS, 0.1,
  55. PSYS_SRC_BURST_RATE, 0.2,
  56. PSYS_SRC_BURST_SPEED_MIN, 0.1,
  57. PSYS_SRC_BURST_SPEED_MAX, 0.8,
  58. PSYS_SRC_TEXTURE, "4f714019-c1cf-6b16-994f-44b217022f1a",
  59. PSYS_SRC_PATTERN,
  60. PSYS_SRC_PATTERN_EXPLODE,
  61. PSYS_PART_FLAGS, 0 | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK
  62. //END OF YOUR PARTICLE SYSTEM
  63. ]);
  64. }
  65.  
  66. //FLIGHT PARTICLES
  67. particles_flight(integer x)
  68. {
  69. llLinkParticleSystem(x,[
  70. //PASTE YOUR PARTICLE SYSTEM HERE:
  71. PSYS_PART_MAX_AGE,0.3,
  72. PSYS_PART_FLAGS, PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK,
  73. PSYS_PART_START_COLOR, <0.000000, 0.000000, 1.000000>,//Change Color Here
  74. PSYS_PART_END_COLOR, <0.666666, 0.666666, 0.666666>,//Change Color Here
  75. PSYS_PART_START_SCALE,<0.7,0.7,0>,
  76. PSYS_PART_END_SCALE, <0.1,0.1,0>,
  77. PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE,
  78. PSYS_SRC_TEXTURE, "4f714019-c1cf-6b16-994f-44b217022f1a",
  79. PSYS_SRC_BURST_RATE,0.01,
  80. PSYS_SRC_ACCEL, <0.00000, 0.00000, 0.00000>,
  81. PSYS_SRC_BURST_PART_COUNT,20,
  82. PSYS_SRC_BURST_RADIUS,0.25,
  83. PSYS_SRC_BURST_SPEED_MIN,0.0,
  84. PSYS_SRC_BURST_SPEED_MAX,1.0,
  85. PSYS_SRC_OMEGA, <0.00000, 0.00000, 0.00000>,
  86. PSYS_SRC_ANGLE_BEGIN,0.0,
  87. PSYS_SRC_ANGLE_END, 3.141593,
  88. PSYS_SRC_MAX_AGE, 0.000000,
  89. PSYS_PART_START_ALPHA, 1.0,
  90. PSYS_PART_END_ALPHA, 0.0
  91. //END OF YOUR PARTICLE SYSTEM
  92. ]);
  93. }
  94.  
  95. //CORNERFX PARTICLES
  96. particles_CornerFX(integer x)
  97. {
  98. llLinkParticleSystem(x,[
  99. //PASTE YOUR PARTICLE SYSTEM HERE:
  100. PSYS_PART_START_ALPHA, 0.5,
  101. PSYS_PART_END_ALPHA, 0.01,
  102. PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>,//Change Color Here
  103. PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>,//Change Color Here
  104. PSYS_PART_START_SCALE, <0.25,0.25,0.25>,
  105. PSYS_PART_END_SCALE, <0.25,0.25,0.25>,
  106. PSYS_PART_MAX_AGE, 3.0,
  107. PSYS_SRC_ACCEL, ZERO_VECTOR,
  108. PSYS_SRC_ANGLE_BEGIN, PI,
  109. PSYS_SRC_ANGLE_END, PI,
  110. PSYS_SRC_BURST_PART_COUNT, 25,
  111. PSYS_SRC_BURST_RADIUS, 0.1,
  112. PSYS_SRC_BURST_RATE, 0.1,
  113. PSYS_SRC_BURST_SPEED_MIN, 0.1,
  114. PSYS_SRC_BURST_SPEED_MAX, 0.8,
  115. PSYS_SRC_TEXTURE, "4f714019-c1cf-6b16-994f-44b217022f1a",
  116. PSYS_SRC_PATTERN,
  117. PSYS_SRC_PATTERN_EXPLODE,
  118. PSYS_PART_FLAGS, 0 | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK
  119. //END OF YOUR PARTICLE SYSTEM
  120. ]);
  121. }
  122.  
  123. //TIRE TRACKS PARTICLES
  124. particles_TireTracks(integer x)
  125. {
  126. llLinkParticleSystem(x,[
  127. //PASTE YOUR PARTICLE SYSTEM HERE:
  128. PSYS_PART_MAX_AGE,60,
  129. PSYS_PART_FLAGS, PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_EMISSIVE_MASK,
  130. PSYS_PART_START_COLOR, <0.0,0.0,0.0>,
  131. PSYS_PART_END_COLOR, <0.0,0.0,0.0>,
  132. PSYS_PART_START_SCALE,<0.5,0.1,0.5>,
  133. PSYS_PART_END_SCALE,<0.5,0.1,0.5>,
  134. PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP,
  135. PSYS_SRC_BURST_RATE,.001,
  136. PSYS_SRC_ACCEL,<0.00000, 0.00000, 0.00000>,
  137. PSYS_SRC_BURST_PART_COUNT,5,//2
  138. PSYS_SRC_BURST_RADIUS,.15,
  139. PSYS_SRC_BURST_SPEED_MIN,0,
  140. PSYS_SRC_BURST_SPEED_MAX,.01,
  141. PSYS_SRC_OMEGA, <0.00000, 0.00000, 0.00000>,
  142. PSYS_SRC_ANGLE_BEGIN,0.0,
  143. PSYS_SRC_ANGLE_END, 3.141593,
  144. PSYS_SRC_TARGET_KEY,(key)"",
  145. PSYS_SRC_TEXTURE, (key)"",
  146. PSYS_SRC_MAX_AGE, 2.000,
  147. PSYS_PART_START_ALPHA, 0.8,
  148. PSYS_PART_END_ALPHA, 0.8
  149. //END OF YOUR PARTICLE SYSTEM
  150. ]);
  151. }
  152.  
  153. //BOAT WAKE PARTICLES
  154. particles_BoatWake(integer x)
  155. {
  156. llLinkParticleSystem(x,[
  157. //PASTE YOUR PARTICLE SYSTEM HERE:
  158. PSYS_PART_MAX_AGE,60,
  159. PSYS_PART_FLAGS, PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_EMISSIVE_MASK,
  160. PSYS_PART_START_COLOR, <1.0,1.0,1.0>,
  161. PSYS_PART_END_COLOR, <1.0,1.0,1.0>,
  162. PSYS_PART_START_SCALE,<1.0,1.0,1.0>,
  163. PSYS_PART_END_SCALE,<0.6,0.6,0.6>,
  164. PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP,
  165. PSYS_SRC_BURST_RATE,.01,
  166. PSYS_SRC_ACCEL, <0.00000, 0.00000, 0.00000>,
  167. PSYS_SRC_BURST_PART_COUNT,1,
  168. PSYS_SRC_BURST_RADIUS,.1,
  169. PSYS_SRC_BURST_SPEED_MIN,0,
  170. PSYS_SRC_BURST_SPEED_MAX,.1,
  171. PSYS_SRC_OMEGA, <0.00000, 0.00000, 0.00000>,
  172. PSYS_SRC_ANGLE_BEGIN,0.0,
  173. PSYS_SRC_ANGLE_END, 3.141593,
  174. PSYS_SRC_TARGET_KEY,(key)"",
  175. PSYS_SRC_TEXTURE, (key)"b1b5356d-9c40-e3a7-70ec-c32066f531f6",
  176. PSYS_SRC_MAX_AGE, 1.000,
  177. PSYS_PART_START_ALPHA, 0.8,
  178. PSYS_PART_END_ALPHA, 0.0
  179. //END OF YOUR PARTICLE SYSTEM
  180. ]);
  181. }
  182. /////////////////////////////////////////////////////////////////////////////////////////////
  183. ///////////////////////////////END RECOMMENDED EDITABLE SECTION//////////////////////////////
  184. /////////////////////////////////////////////////////////////////////////////////////////////
  185.  
  186. Clear(list target){if (valid(target)){integer c = llGetListLength(target);integer i; for (; i < c; ++i){llLinkParticleSystem(llList2Integer(target,i), []);}}}
  187. stopall(){integer i; integer xx=llGetNumberOfPrims();for (; i < xx; ++i) {llLinkParticleSystem(i, []);}}integer valid(list x){return llGetListLength(x);}
  188. integer Ignition;integer Flight;integer Water;list flightprims;list smokeprims;list burnprims;list trackprims;list wakeprims;integer trackson;integer ExhaustOn=TRUE;integer repid=912;
  189. SendParticles(integer x) {
  190. list target;if (x==1) target=flightprims; else if (x==2) target=smokeprims; else if (x==3) target=burnprims; else if (x==4) target=burnprims; else if (x==5) target=trackprims; else if (x==6) target=wakeprims; integer tlen=llGetListLength(target);integer i; for (i; i < tlen; ++i) {integer p = llList2Integer(target,i); if (x==1) particles_flight(p); else if (x==2 && ExhaustOn) particles_exhaust(p); else if (x==3) particles_burnout(p); else if (x==4) particles_CornerFX(p); else if (x==5) particles_TireTracks(p); else if (x==6) particles_BoatWake(p);}}
  191.  
  192. default
  193. {
  194. state_entry()
  195. {
  196. if (llSubStringIndex(llGetObjectName(), "Mechanic HUD")!=0xFFFFFFFF){llSetScriptState(llGetScriptName(),FALSE);}
  197. llMessageLinked(LINK_THIS,repid,llGetScriptName(),"");llSleep(1.0);llMessageLinked(LINK_THIS,749,"","");
  198. }
  199.  
  200. link_message(integer sender_num, integer num, string message, key id)
  201. {
  202. if (num == 659)
  203. {
  204. Ignition=FALSE;
  205. Flight=FALSE;
  206. llSetTimerEvent(0.0);
  207. stopall();
  208.  
  209. }
  210. else
  211. if (num == 660)
  212. {
  213. Ignition=TRUE;
  214. llSetTimerEvent(0.2);
  215. if (valid(smokeprims)) SendParticles(2);
  216. if (TracksAlwaysOn && valid(trackprims)) SendParticles(5);
  217. }
  218. else
  219. if (num == 662 && valid(burnprims) && !Flight) {SendParticles(3);trackson=TRUE;}
  220. else
  221. if (num == 664 && valid(burnprims) && !Flight) {SendParticles(3);trackson=TRUE;}
  222. else
  223. if (num == 754 && valid(burnprims) && !Flight) {SendParticles(4);if (TracksCornerFX) trackson=TRUE;}
  224. else
  225. if (num == 797) {if ((integer)message) Water=TRUE; else Water=FALSE;}
  226. else
  227. if (num==670)
  228. {
  229. Clear(smokeprims);
  230. ExhaustOn=(integer)message;
  231. if(Ignition) SendParticles(2);
  232. }
  233. else
  234. if (num == 689 && valid(flightprims))
  235. {
  236. Flight=TRUE;
  237. Clear(trackprims);
  238. SendParticles(1);
  239. }
  240. else
  241. if (num == 789)
  242. {
  243. Flight=FALSE;
  244. Clear(flightprims);
  245. }
  246. else
  247. if (num == 230)
  248. {
  249. if ((integer)message)
  250. {
  251. Water=TRUE;
  252. trackson=FALSE;
  253. Clear(trackprims);
  254. }
  255. else
  256. {
  257. Water=FALSE;
  258. Clear(wakeprims);
  259. }
  260. }
  261. else
  262. if (num == 679) llResetScript();
  263. else
  264. if (num == 750) flightprims=llCSV2List(message);
  265. else
  266. if (num == 751) smokeprims=llCSV2List(message);
  267. else
  268. if (num == 752) burnprims=llCSV2List(message);
  269. else
  270. if (num == 755) trackprims=llCSV2List(message);
  271. else
  272. if (num == 757) wakeprims=llCSV2List(message);
  273. else
  274. if ((num == repid && message!=llGetScriptName())|num == 575) llRemoveInventory(llGetScriptName());
  275. else
  276. if (num == 661 | num == 687 | num == 753 | num==663)
  277. {
  278. Clear(burnprims);
  279. trackson=FALSE;
  280. }
  281. }
  282.  
  283. timer()
  284. {
  285. if (llVecMag(llGetVel())>1 && !Flight)
  286. {
  287. if (Water) SendParticles(6);
  288. else if (TracksAlwaysOn | trackson) SendParticles(5);
  289. }
  290. }
  291. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement