|
Moss Talamasca
Serpent & Thistle
Join date: 20 Aug 2005
Posts: 367
|
06-12-2006 13:34
Ive done some looking, but don't see anything like it here, so i'm just going to poast the question: How would one go about adding on/off voice commands to particle scripts?
I understand that to end a particle effect, one can add empty parameters i.e. llParticleSystem([]) and i assume that turning them back on would mean sending the script back to the parameters, but the script i tried writing i didn't work. I'm a total newb here.
How would *YOU* remotely turn off and then back on a particle system??
|
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
06-12-2006 13:46
Make it remember what its particle script is or have a function to turn it on, and then have a listen that will turn it on or off. Do you need the code to do this?
|
|
Moss Talamasca
Serpent & Thistle
Join date: 20 Aug 2005
Posts: 367
|
Yes please.
06-12-2006 13:51
From: Keknehv Psaltery Make it remember what its particle script is or have a function to turn it on, and then have a listen that will turn it on or off. Do you need the code to do this? I'd love to see code for this. It's the syntax which most hangs me up. I can tweak a little bit, but writing from scratch is still a challenge!  Thanks
|
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
06-12-2006 13:58
This bit of code should work, although I haven't tested the listens. // Keknehv's Particle Script v1.2 // 1.0 -- 5/30/05 // 1.1 -- 6/17/05 // 1.2 -- 9/22/05 (Forgot PSYS_SRC_MAX_AGE)
// This script may be used in anything you choose, including and not limited to commercial products. // Just copy the MakeParticles() function; it will function without any other variables in a different script // ( You can, of course, rename MakeParticles() to something else, such as StartFlames() )
// This script is basically an llParticleSystem() call with comments and formatting. Change any of the values // that are listed second to change that portion. Also, it is equipped with a touch-activated off button, // for when your particles go haywire and cause everyone to start yelling at you.
// Contact Keknehv Psaltery if you have questions or comments.
integer listenHandle;
MakeParticles() //This is the function that actually starts the particle system. { llParticleSystem([ //KPSv1.0 PSYS_PART_FLAGS , 0 //Comment out any of the following masks to deactivate them //| PSYS_PART_BOUNCE_MASK //Bounce on object's z-axis //| PSYS_PART_WIND_MASK //Particles are moved by wind | PSYS_PART_INTERP_COLOR_MASK //Colors fade from start to end | PSYS_PART_INTERP_SCALE_MASK //Scale fades from beginning to end | PSYS_PART_FOLLOW_SRC_MASK //Particles follow the emitter | PSYS_PART_FOLLOW_VELOCITY_MASK //Particles are created at the velocity of the emitter //| PSYS_PART_TARGET_POS_MASK //Particles follow the target | PSYS_PART_EMISSIVE_MASK //Particles are self-lit (glow) //| PSYS_PART_TARGET_LINEAR_MASK //Undocumented--Sends particles in straight line? , //PSYS_SRC_TARGET_KEY , NULL_KEY, //Key of the target for the particles to head towards //This one is particularly finicky, so be careful. //Choose one of these as a pattern: //PSYS_SRC_PATTERN_DROP Particles start at emitter with no velocity //PSYS_SRC_PATTERN_EXPLODE Particles explode from the emitter //PSYS_SRC_PATTERN_ANGLE Particles are emitted in a 2-D angle //PSYS_SRC_PATTERN_ANGLE_CONE Particles are emitted in a 3-D cone //PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY Particles are emitted everywhere except for a 3-D cone PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE ,PSYS_SRC_TEXTURE, "" //UUID of the desired particle texture, or inventory name ,PSYS_SRC_MAX_AGE, 0.0 //Time, in seconds, for particles to be emitted. 0 = forever ,PSYS_PART_MAX_AGE, 1.0 //Lifetime, in seconds, that a particle lasts ,PSYS_SRC_BURST_RATE, 0.02 //How long, in seconds, between each emission ,PSYS_SRC_BURST_PART_COUNT, 2 //Number of particles per emission ,PSYS_SRC_BURST_RADIUS, 5.0 //Radius of emission ,PSYS_SRC_BURST_SPEED_MIN, 5.5 //Minimum speed of an emitted particle ,PSYS_SRC_BURST_SPEED_MAX, 6.0 //Maximum speed of an emitted particle ,PSYS_SRC_ACCEL, <0.0,0.0,-0.8> //Acceleration of particles each second ,PSYS_PART_START_COLOR, <0.0,0.0,1.0> //Starting RGB color ,PSYS_PART_END_COLOR, <0.6,0.6,1.0> //Ending RGB color, if INTERP_COLOR_MASK is on ,PSYS_PART_START_ALPHA, 0.9 //Starting transparency, 1 is opaque, 0 is transparent. ,PSYS_PART_END_ALPHA, 0.0 //Ending transparency ,PSYS_PART_START_SCALE, <2.4,2.4,0.0> //Starting particle size ,PSYS_PART_END_SCALE, <1.3,2.3,0.0> //Ending particle size, if INTERP_SCALE_MASK is on ,PSYS_SRC_ANGLE_BEGIN, PI //Inner angle for ANGLE patterns ,PSYS_SRC_ANGLE_END, PI //Outer angle for ANGLE patterns ,PSYS_SRC_OMEGA, <0.0,0.0,0.0> //Rotation of ANGLE patterns, similar to llTargetOmega() ]); }
default { state_entry() { MakeParticles(); //Start making particles listenHandle = llListen(20,"","","off"); //Listen for the off command }
listen( integer chan, string name, key id, string msg ) //Turn particles off when told { llListenRemove( listenHandle ); state off; //Switch to the off state } }
state off { state_entry() { llParticleSystem([]); //Stop making particles listenHandle = llListen(20,"","","on"); //Listen for the on command } listen( integer chan, string name, key id, string msg ) //Turn particles back on when told { llListenRemove( listenHandle ); state default; //Switch back on } }
|
|
Moss Talamasca
Serpent & Thistle
Join date: 20 Aug 2005
Posts: 367
|
Thanks!
06-12-2006 14:10
I'll give 'er a try and let you know. Much appreciated!
|
|
Moss Talamasca
Serpent & Thistle
Join date: 20 Aug 2005
Posts: 367
|
Works great
06-12-2006 14:50
With the excpetion of the last listen call: listen( integer chan, string name, key id, string msg ) //Turn particles back on when told { llListenRemove( listenHandle ); state off; //Switch to the off state }
Should be: listen( integer chan, string name, key id, string msg ) //Turn particles back on when told { llListenRemove( listenHandle ); MakeParticles(); }
Make Particles loop to turn them back on. The Off state was accidentally called twice. Thanks so much! You'll get credit 
|
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
06-12-2006 15:00
Yes, there was a mistake, but that wasn't the way to fix it.
It should just have been "state default" instead of "state off". I updated my post.
|