vector sColor; integer total = 20; list COLORSET = [ <1.0, 0.0, 0.0>, <0.0, 1.0, 0.0>, <0.0, 0.0, 1.0>, <1.0, 1.0, 0.0>, <1.0, 0.0, 1.0>, <1.0, 1.0 ,1.0>, <1.0, 0.5, 0.0>, <0.5, 1.0, 0.0>, <0.0, 0.5, 1.0>, <0.5, 0.0, 1.0>, <1.0, 0.0, 0.0>, <0.0, 1.0, 0.0>, <0.0, 0.0, 1.0>, <1.0, 1.0, 0.0>, <1.0, 0.0, 1.0>, <0.0, 1.0 ,1.0>, <1.0, 0.5, 0.0>, <0.5, 1.0, 0.0>, <0.0, 0.5, 1.0>, <0.5, 0.0, 1.0>, <1.0, 0.0, 0.0>, <0.0, 1.0, 0.0>, <0.0, 0.0, 1.0>, <1.0, 1.0, 0.0>, <1.0, 0.0, 1.0>, <0.0, 1.0 ,1.0>, <1.0, 0.5, 0.0>, <1.0, 1.0, 0.0>, <0.0, 0.5, 1.0>, <0.5, 0.0, 1.0>]; part(integer link,float spd,integer duration) { // vector sColor = <1,1,1>; //if (link < 7) sColor = <1,0.,0>; //if (link > 14) sColor = <0,0.3,1>; // sColor = llList2Vector(COLORSET, (integer)llFrand(llGetListLength(COLORSET)) ); //Uncomment for random color llLinkParticleSystem(link, [ PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_ANGLE_CONE, PSYS_SRC_BURST_RADIUS,0.9, PSYS_SRC_ANGLE_BEGIN,0, PSYS_SRC_ANGLE_END,0.05, PSYS_PART_START_COLOR,sColor, PSYS_PART_END_COLOR, sColor, PSYS_PART_START_ALPHA,.7, PSYS_PART_END_ALPHA,0, PSYS_PART_START_GLOW,0, PSYS_PART_END_GLOW,0, PSYS_PART_BLEND_FUNC_SOURCE,PSYS_PART_BF_SOURCE_ALPHA, PSYS_PART_BLEND_FUNC_DEST,PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA, PSYS_PART_START_SCALE,<0.2,4 ,0.000000>, PSYS_PART_END_SCALE,<3.,4.000000,0.000000>, PSYS_SRC_TEXTURE,"smoke-01", PSYS_SRC_MAX_AGE,5.0, PSYS_PART_MAX_AGE,12, PSYS_SRC_BURST_RATE,.02, PSYS_SRC_BURST_PART_COUNT,2, PSYS_SRC_ACCEL,<0.000000,0.000000,-2.000>, PSYS_SRC_OMEGA,<0.000000,0.000000,.000000>, PSYS_SRC_BURST_SPEED_MIN,spd/2., PSYS_SRC_BURST_SPEED_MAX,spd/2.+0 , PSYS_PART_FLAGS, 0 | PSYS_PART_EMISSIVE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_BOUNCE_MASK| PSYS_PART_INTERP_SCALE_MASK ]); } party(integer number) { integer i; //number = 5; integer half= total/2; if (number ==1) { for (i=total; i>0; i--) { //llSleep(0.3); part(i, half+i/1.4, 2); } } else if (number ==2) { for (i=0; i =0; i--) { //llSleep(0.3); part(half-i , half-1+i/.7, 2); part(half+1+i, half-1+i/.7, 2); } } else { for (i=1; i <= total; i++) { part(i, total+2-i/1.5, 2); } } } integer run=0; default { state_entry() { llSetTimerEvent(11); } touch_start(integer n) { run = !run; llSetTimerEvent(run*23.); party(1); } timer() { party((integer)llFrand(5.)); } }