Jump to content

Script for 2nd Prim (HUD), turn on/off transparency 100/0% of another prim (or more)


Pete Chandru
 Share

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

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

Recommended Posts

Hello,

 

I have an attachment on my ava, which I would like to turn on and off via a HUD Button. Sadly I am not familiar with scripts, so I try to get help here.

The attachment is modable. It would be fine, if someoen could help me to make an script, that I put in a prim, which is linked to the attachment, which does following things by clicking once (on) or once again (off):

 

transparency set from 100% to 0% (and reverse)

 

deactivate smoke script or turn it on (which is in the attachment). the scrips is the following

// Particle Script 0.3
// Created by Ama Omega
// 10-10-2003

// Mask Flags - set to TRUE to enable
integer glow = TRUE;            // Make the particles glow
integer bounce = FALSE;          // Make particles bounce on Z plan of object
integer interpColor = TRUE;     // Go from start to end color
integer interpSize = TRUE;      // Go from start to end size
integer wind = FALSE;           // Particles effected by wind
integer followSource = FALSE;    // Particles follow the source
integer followVel = TRUE;       // Particles turn to velocity direction

// Choose a pattern from the following:
// PSYS_SRC_PATTERN_EXPLODE
// PSYS_SRC_PATTERN_DROP
// PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
// PSYS_SRC_PATTERN_ANGLE_CONE
// PSYS_SRC_PATTERN_ANGLE
integer pattern = PSYS_SRC_PATTERN_EXPLODE;

// Select a target for particles to go towards
// "" for no target, "owner" will follow object owner 
//    and "self" will target this object
//    or put the key of an object for particles to go to
key target = "";

// Particle paramaters
float age = 
4
;                  // Life of each particle
float maxSpeed = 0.05;            // Max speed each particle is spit out at
float minSpeed = 0.15;            // Min speed each particle is spit out at
string texture ="36eb6b3d-b655-9c99-b188-bf86ede5d425";                 // Texture used for particles, default used if blank
float startAlpha = 1.1;           // Start alpha (transparency) value
float endAlpha = 0.0;           // End alpha (transparency) value
vector startColor = <0.0,0.0,0>;    // Start color of particles <R,G,B>
vector endColor =<0.0,0.0,0>;     // End color of particles <R,G,B> (if interpColor == TRUE)
vector startSize = <.5,0.5,5>;  // Start size of particles 
vector endSize = <1.0,1.0,4>;       // End size of particles (if interpSize == TRUE)
vector push = <0,0,0.05>;          // Force pushed on particles

// System paramaters
float rate = 0.1;            // How fast (rate) to emit particles
float radius = 0.0;          // Radius to emit particles for BURST pattern
integer count = 100;        // How many particles to emit per BURST 
float outerAngle = 7.75;    // Outer angle for all ANGLE patterns
float innerAngle = 7.55;    // Inner angle for all ANGLE patterns
vector omega = <0,5,1>;    // Rotation of ANGLE patterns around the source
float life = 0;             // Life in seconds for the system to make particles

// Script variables
integer flags;

updateParticles()
{
    flags = 0;
    if (target == "owner") target = llGetOwner();
    if (target == "self") target = llGetKey();
    if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
    if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
    if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
    if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
    if (wind) flags = flags | PSYS_PART_WIND_MASK;
    if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
    if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
    if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;

    llParticleSystem([  PSYS_PART_MAX_AGE,age,
                        PSYS_PART_FLAGS,flags,
                        PSYS_PART_START_COLOR, startColor,
                        PSYS_PART_END_COLOR, endColor,
                        PSYS_PART_START_SCALE,startSize,
                        PSYS_PART_END_SCALE,endSize, 
                        PSYS_SRC_PATTERN, pattern,
                        PSYS_SRC_BURST_RATE,rate,
                        PSYS_SRC_ACCEL, push,
                        PSYS_SRC_BURST_PART_COUNT,count,
                        PSYS_SRC_BURST_RADIUS,radius,
                        PSYS_SRC_BURST_SPEED_MIN,minSpeed,
                        PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
                        PSYS_SRC_TARGET_KEY,target,
                        PSYS_SRC_INNERANGLE,innerAngle, 
                        PSYS_SRC_OUTERANGLE,outerAngle,
                        PSYS_SRC_OMEGA, omega,
                        PSYS_SRC_MAX_AGE, life,
                        PSYS_SRC_TEXTURE, texture,
                        PSYS_PART_START_ALPHA, startAlpha,
                        PSYS_PART_END_ALPHA, endAlpha
                            ]);
}
default
{
    state_entry()
    {
        updateParticles();
    }
}

Hope someone can help :)

Link to comment
Share on other sites

Particles turn on with the llParticleSystem command that's already in your script, and they will turn off with llParticleSystem([]);   Transparency of the prim that your script is in will vary from from 100% visible with llSetAlpha(1.00, ALL_SIDES) to fully transparent with llSetAlpha(0.0,ALL_SIDES).  Build those into a listen event to replace your state_entry event that toggles from ON to OFF with each click.  So, basically ...

listen(integer channel, string name, key id, string message){    if (message == "ON")    {        llSetAlpha(1.0,ALL_SIDES);        UpdateParticles();    }    else    {        llSetAlpha(0.0,ALL_SIDES);        llParticleSystem([]);    }}

You can either try making that modification yourself or find a local scripter who will be glad to do it for a small fee.  Then you or your scripter will need to write a sending script for your HUD to send that message ("ON" or "OFF") to the attachment that has your modified script in it.  Be sure that both scripts are using the same communication channel, and remember that particles are always emitted from the +Z end of the prim the emitter is in, so you may need to adjust either your prim or the script to get the effect you want.

  • Like 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 2629 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...