Jump to content

I fail at combining scripts :(


BijouxLux
 Share

You are about to reply to a thread that has been inactive for 3584 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hello :) I am working on a tea pot, which you can see here

I have a script in the tea tag that successfully starts and stops a sound when touched:

 

//////////////////////////////////////////////////////////
// [K] Kira Komarov - 2011, License: GPLv3              //
// Please see: http://www.gnu.org/licenses/gpl.html     //
// for legal details, rights of fair usage and          //
// the disclaimer and warranty conditions.              //
//////////////////////////////////////////////////////////
 
// Change this to either the NAME of a sound in the same primitive
// as this script, OR the key of the sound to be played if it is not
// in the same primitive as this script.
string SOUND = "db0734c0-9869-4f9a-bc6b-c6da5fb61587";
integer o = -1;
 
default
{
 
    touch_start(integer total_number)
    {
        if(o = ~o) {
            llStopSound();
            return;
        }
llPlaySound(SOUND, 1.0);
    }
}

 I also have a script that successfully toggles steam on and off from a prim in the spout:

 

// Keknehv Psaltery's Particle Script v1.1
// 1.0 -- 5/30/05
// 1.1 -- 6/17/05

//     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.

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,           "2ca57748-4944-de53-b301-8d0efbafb2c6"     //UUID of the desired particle texture  
    ,PSYS_PART_MAX_AGE,          2.5                //Lifetime, in seconds, that a particle lasts
    ,PSYS_SRC_BURST_RATE,        0.15               //How long, in seconds, between each emission
    ,PSYS_SRC_BURST_PART_COUNT,  1                  //Number of particles per emission
    ,PSYS_SRC_BURST_RADIUS,      2.0                //Radius of emission
    ,PSYS_SRC_BURST_SPEED_MIN,   0.5                //Minimum speed of an emitted particle
    ,PSYS_SRC_BURST_SPEED_MAX,   1.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,      <1,1,1>      //Starting RGB color
    ,PSYS_PART_END_COLOR,        <0.2,0.2,0.2>      //Ending RGB color, if INTERP_COLOR_MASK is on 
    ,PSYS_PART_START_ALPHA,      0.5                //Starting transparency, 1 is opaque, 0 is transparent.
    ,PSYS_PART_END_ALPHA,        0.0                //Ending transparency
    ,PSYS_PART_START_SCALE,      <0.8,0.8,0.0>      //Starting particle size
    ,PSYS_PART_END_SCALE,        <4.3,4.3,0.0>      //Ending particle size, if INTERP_SCALE_MASK is on
    ,PSYS_SRC_ANGLE_BEGIN,       -.3                //Inner angle for ANGLE patterns
    ,PSYS_SRC_ANGLE_END,         .3                //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
    }

    touch_start( integer num )            //Turn particles off when touched
    {
        state off;        //Switch to the off state
    }
}

state off
{
    state_entry()
    {
        llParticleSystem([]);        //Stop making particles
    }
    
    touch_start( integer num )        //Turn particles back on when touched
    {
        state default;
    }
}

 

What I would like to do is combine these scripts (or do... something) so that when you touch the tea bag tag, it turns the sound on and turns the steam on. Obviously, the steam still needs to come from the spout :) Touching it again should turn both the sound and the steam off.

I would appreciate any pointers anyone feels like offering. Thank you so much :)

Link to comment
Share on other sites

A little copy & paste is all it takes.

//////////////////////////////////////////////////////////// [K] Kira Komarov - 2011, License: GPLv3              //// Please see: http://www.gnu.org/licenses/gpl.html     //// for legal details, rights of fair usage and          //// the disclaimer and warranty conditions.              ////////////////////////////////////////////////////////////string SOUND = "db0734c0-9869-4f9a-bc6b-c6da5fb61587";integer o = -1;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,           "2ca57748-4944-de53-b301-8d0efbafb2c6"     //UUID of the desired particle texture      	,PSYS_PART_MAX_AGE,          2.5                //Lifetime, in seconds, that a particle lasts    	,PSYS_SRC_BURST_RATE,        0.15               //How long, in seconds, between each emission    	,PSYS_SRC_BURST_PART_COUNT,  1                  //Number of particles per emission    	,PSYS_SRC_BURST_RADIUS,      2.0                //Radius of emission    	,PSYS_SRC_BURST_SPEED_MIN,   0.5                //Minimum speed of an emitted particle    	,PSYS_SRC_BURST_SPEED_MAX,   1.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,      <1,1,1>      	//Starting RGB color    	,PSYS_PART_END_COLOR,        <0.2,0.2,0.2>      //Ending RGB color, if INTERP_COLOR_MASK is on     	,PSYS_PART_START_ALPHA,      0.5                //Starting transparency, 1 is opaque, 0 is transparent.    	,PSYS_PART_END_ALPHA,        0.0                //Ending transparency    	,PSYS_PART_START_SCALE,      <0.8,0.8,0.0>      //Starting particle size    	,PSYS_PART_END_SCALE,        <4.3,4.3,0.0>      //Ending particle size, if INTERP_SCALE_MASK is on    	,PSYS_SRC_ANGLE_BEGIN,       -.3                //Inner angle for ANGLE patterns    	,PSYS_SRC_ANGLE_END,         .3                 //Outer angle for ANGLE patterns    	,PSYS_SRC_OMEGA,             <0.0,0.0,0.0>      //Rotation of ANGLE patterns, similar to llTargetOmega()    ]);} default{    touch_start(integer total_number)    {        if(o = ~o) {            llStopSound();	    llParticleSystem([]);            return;        }	llPlaySound(SOUND, 1.0);	MakeParticles();    }}

 

Link to comment
Share on other sites

If the "PRESS TO SHOUT" teabag prim is named "PRESS TO SHOUT" and if it is linked to the prim that has this script in it, and if this prim is the root prim of the linkset, then

    touch_start(integer total_number)    {        if (llGetLinkName(llDetectedLinkNumber(0)) == "PRESS TO SHOUT")        {            if(o = ~o) {                llStopSound();    	        llParticleSystem([]);                return;            }	    llPlaySound(SOUND, 1.0);	    MakeParticles();        }    }

 

Link to comment
Share on other sites

If neither the tea tag nor the green spout prim are root, you could do the following;
- name the tea tag prim as "tag",
- name the green spout prim as "spout",
- put this slightly modified script in the root prim;

//////////////////////////////////////////////////////////// [K] Kira Komarov - 2011, License: GPLv3              //// Please see: http://www.gnu.org/licenses/gpl.html     //// for legal details, rights of fair usage and          //// the disclaimer and warranty conditions.              ////////////////////////////////////////////////////////////string SOUND = "db0734c0-9869-4f9a-bc6b-c6da5fb61587";integer o = -1;integer LNtag;integer LNspout;MakeParticles() {                        //This is the function that actually starts the particle system.                    llLinkParticleSystem(LNspout, [      //KPSv1.0          PSYS_PART_FLAGS , 0              //Comment out any of the following masks to deactivate them        | 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_SRC_PATTERN,           PSYS_SRC_PATTERN_ANGLE_CONE            ,PSYS_SRC_TEXTURE,           "2ca57748-4944-de53-b301-8d0efbafb2c6"     //UUID of the desired particle texture          ,PSYS_PART_MAX_AGE,          2.5                //Lifetime, in seconds, that a particle lasts        ,PSYS_SRC_BURST_RATE,        0.15               //How long, in seconds, between each emission        ,PSYS_SRC_BURST_PART_COUNT,  1                  //Number of particles per emission        ,PSYS_SRC_BURST_RADIUS,      2.0                //Radius of emission        ,PSYS_SRC_BURST_SPEED_MIN,   0.5                //Minimum speed of an emitted particle        ,PSYS_SRC_BURST_SPEED_MAX,   1.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,      <1,1,1>            //Starting RGB color        ,PSYS_PART_END_COLOR,        <0.2,0.2,0.2>      //Ending RGB color, if INTERP_COLOR_MASK is on         ,PSYS_PART_START_ALPHA,      0.5                //Starting transparency, 1 is opaque, 0 is transparent.        ,PSYS_PART_END_ALPHA,        0.0                //Ending transparency        ,PSYS_PART_START_SCALE,      <0.8,0.8,0.0>      //Starting particle size        ,PSYS_PART_END_SCALE,        <4.3,4.3,0.0>      //Ending particle size, if INTERP_SCALE_MASK is on        ,PSYS_SRC_ANGLE_BEGIN,       -.3                //Inner angle for ANGLE patterns        ,PSYS_SRC_ANGLE_END,         .3                 //Outer angle for ANGLE patterns        ,PSYS_SRC_OMEGA,             <0.0,0.0,0.0>      //Rotation of ANGLE patterns, similar to llTargetOmega()    ]);} default {    state_entry() {        integer i = llGetNumberOfPrims();        do {            if (llGetLinkName(i) == "tag") LNtag = i;            else if (llGetLinkName(i) == "spout") LNspout = i;        } while (--i > 0);    }        touch_start(integer total_number) {        if (llDetectedLinkNumber(0) == LNtag) {            if(o = ~o) {                llStopSound();                llLinkParticleSystem(LNspout, []);                return;            }            llPlaySound(SOUND, 1.0);            MakeParticles();        }    }}

  

That should work.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 3584 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...