Jump to content

Ok what iam i doing worng here?


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

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

Recommended Posts

Ok I have a Box that emits a particle fog.

The script in to works and sending the off/ on command works.

I am trying to get a button on my hud i made to send the Turn On command to The Box.

Here is the Box Script:

integer channel = -200;
string offMessage = "Fog Off";
string onMessage = "Fog On";

// 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 = TRUE;    // Particles follow the source
integer followVel = TRUE;       // Particles turn to velocity direction

// Choose a pattern from the following:
integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE;

// 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 = 6.8;                  // Life of each particle <-- invrease that value for larger fog
float maxSpeed = 0.5;            // Max speed each particle is spit out at
float minSpeed = 0.5;            // Min speed each particle is spit out at
string texture = "4bdbb6c7-5819-b19e-be6d-38f96228fe68";                 // Texture used for particles, default used if blank
float startAlpha = 0.01;           // Start alpha (transparency) value
float endAlpha = 0.03;           // End alpha (transparency) value
vector startColor = <0, 0.5, 0>;    // Start color of particles <R,G,B>
vector endColor = <0, 0.5, 0>;      // End color of particles <R,G,B> (if interpColor == TRUE)
vector startSize = <1, 1, 1>;     // Start size of particles
vector endSize = <2.0,2.0,0.0>;       // End size of particles (if interpSize == TRUE)
vector push = <0.,0.,0.>;          // Force pushed on particles

// System paramaters
float rate = .5;            // How fast (rate) to emit particles
float radius = 3;          // Radius to emit particles for BURST pattern
integer count = 30;        // How many particles to emit per BURST <-- increase that value for more tense fog
float outerAngle = 1.57;    // Outer angle for all ANGLE patterns
float innerAngle = 1.58;    // Inner angle for all ANGLE patterns
vector omega = <0,0,1>;    // Rotation of ANGLE patterns around the source
float life = 0;             // Life in seconds for the system to make particles

// Script variables
integer flags;

    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_START_COLOR, startColor,
                        PSYS_PART_END_COLOR, endColor,
                        PSYS_SRC_PATTERN, pattern,
                        PSYS_SRC_ACCEL, push,
                        PSYS_SRC_OMEGA, omega,
                        PSYS_SRC_MAX_AGE, life,
                        PSYS_SRC_TEXTURE, texture,
                        PSYS_PART_START_ALPHA, startAlpha,
                        PSYS_PART_END_ALPHA, endAlpha






        llListen(channel, "", llGetOwner(), offMessage);

    listen(integer channel, string name, key id, string message)
        state off;        //Switch to the off state

state off
        llParticleSystem([]);        //Stop making particles

        llListen(channel, "", llGetOwner(), onMessage);

    listen(integer channel, string name, key id, string message)
        state default;


Here Is What I Have on The Hud Button:

        llSay(-200,"Fog On");

    touch_start(integer total_number)
        llSay(-200, "Fog On.");

Wants Wrong Because it does not Trigger The Box Script.. I have try to figure this out but confused.

Thanks for any help.




Link to comment
Share on other sites

Scripting is all about logic.  Approach this as if you were giving directions to a small child ... a dim-witted one but one who will do exactly what you say.

If you tell it to only turn the fog on when it hears you say "Fog On", it's going to ignore you if you say "Fog On." And if you never say "Fog Off" it won't turn it off either.  ;)


  • Like 3
Link to comment
Share on other sites

Please, when posting code, click the little <> icon just above the text box. It'll open a little pop-up where you're supposed to put your code. You can do this multiple times to have clearly separate blocks of code, for example:




Edit: I actually didn't know you could just select and convert.

Edited by Wulfie Reanimator
Link to comment
Share on other sites

You're getting good advice, but if you want to learn more broadly than just making this script work, you might visit Jopsy Pendragon's Particle Laboratory.  Follow the huge purple arrow and take the hot air balloon from landing point http://maps.secondlife.com/secondlife/Teal/182/75/22

Link to comment
Share on other sites

  • 3 years later...
You are about to reply to a thread that has been inactive for 70 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

  • Create New...