Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Please someone Help ?

Sweetheart Baskerville
Registered User
Join date: 1 Jan 2004
Posts: 32
01-23-2007 08:24
Hello, :confused:

I found this script awhile back, so I thought I would try it out. I know nothing about scripting, the command works with the poofer, but I don't know how to get it to work on tp'ing or on login. I noticed it said something about a note card, but I didn't understand what to put on the note card to trigger the login poof or tp poofer to work... not even sure if it requires a note card or a name or what. Please someone help ...Thank You, Sweetheart Baskerville, (Juliea)

// Particle Poofer
// 7/6/05

//Just change this variable to change the (default) texture.
//It needs either the name of a texture in the inventory, or a key ( asset UUID )
string pooftexture = "texture";

float pooftime = 2; //How long it poofs
float poofrate = 0.4; //How long between each emission ( during poofing )
integer poofnum = 10; //How many particles per emission
float poofscale = 2; //The scale of the particles
float poofspeed = 5.5; //Speed of emitted particles
integer commandchannel = 1; //What channel to listen for commands on

key oldkey; //For the teleportation and rezzing stuff...

integer POOF_NOTECARD_READ_REQUEST = 10003;
integer POOF_COMMAND = 10004;

poof() //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 , llGetKey(), //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_EXPLODE

,PSYS_SRC_TEXTURE, pooftexture //UUID of the desired particle texture
,PSYS_PART_MAX_AGE, 5.0 //Lifetime, in seconds, that a particle lasts
,PSYS_SRC_MAX_AGE, pooftime //How long, in seconds, that the system lasts1
,PSYS_SRC_BURST_RATE, poofrate //How long, in seconds, between each emission
,PSYS_SRC_BURST_PART_COUNT, 10 //Number of particles per emission
,PSYS_SRC_BURST_RADIUS, 5.0 //Radius of emission
,PSYS_SRC_BURST_SPEED_MIN, poofspeed //Minimum speed of an emitted particle
,PSYS_SRC_BURST_SPEED_MAX, poofspeed + .5 //Maximum speed of an emitted particle
,PSYS_SRC_ACCEL, <0.0,0.0,0.0> //Acceleration of particles each second
,PSYS_PART_START_COLOR, <1.0,1.0,1.0> //Starting RGB color
,PSYS_PART_END_COLOR, <1.0,1.0,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.5 //Ending transparency
,PSYS_PART_START_SCALE, poofscale*<1,1,1> //Starting particle size
,PSYS_PART_END_SCALE, poofscale*<1,1,1>-<.3,.3,.3> //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()
]);
}

string trim( string f2s ) //This will trim a typecast float
{
integer length = llStringLength( f2s ) - 1;
while( llGetSubString( f2s, length, length ) == "0" )
{
--length;
f2s = llGetSubString( f2s, 0, length );
}
if ( llGetSubString( f2s, length, length ) == "." )
{
--length;
f2s = llGetSubString( f2s, 0, length );
}
return f2s;
}

docommand( string msg ) //This will parse out a command for the poofer
{
msg = llToLower( msg ); //Make it accept commands in any case

list parsedcommand = llParseString2List( msg, [" "], [] );
string part1 = llList2String( parsedcommand, 0 );
if ( part1 == "poof" )
{
if ( llGetListLength( parsedcommand ) > 1 ) //They gave us a texture parameter
{
pooftexture = llDumpList2String( llList2List( parsedcommand, 1, llGetListLength( parsedcommand ) ), " " );
poof();
} else
{
poof();
}
} else if ( ( part1 == "pooftexture" ) || ( part1 == "pt" ) )
//This is so long because it needs to ignore the spaces
pooftexture = llDumpList2String( llList2List( parsedcommand, 1, llGetListLength( parsedcommand ) ), " " );
else if ( part1 == "pooftime" )
pooftime = (float)llList2String( parsedcommand, 1 );
else if ( part1 == "poofrate" )
poofrate = (float)llList2String( parsedcommand, 1 );
else if ( part1 == "poofnum" )
poofnum = (integer)llList2String( parsedcommand, 1 );
else if ( part1 == "poofscale" )
poofscale = (float)llList2String( parsedcommand, 1 );
else if ( part1 == "poofspeed" )
poofspeed = (float)llList2String( parsedcommand, 1 );
else if ( part1 == "poofreset" )
llResetScript();
else if ( part1 == "poofdump" )
{
llOwnerSay( "pooftexture : " + pooftexture );
llOwnerSay( "pooftime : " + trim( (string)pooftime ) );
llOwnerSay( "poofrate: " + trim( (string)poofrate ) );
llOwnerSay( "poofnum: " + (string)poofnum );
llOwnerSay( "poofscale: " + trim( (string)poofscale ) );
llOwnerSay( "poofspeed: " + trim( (string)poofspeed ) );
}
}

default
{
on_rez( integer sparam )
{
poof();
llResetScript();
}

state_entry()
{
llParticleSystem([]);
oldkey = llGetKey();
llMessageLinked( LINK_SET, POOF_NOTECARD_READ_REQUEST, "", "" );
llListen( commandchannel, "", llGetOwner(), "" );
}

moving_start()
{
if ( oldkey != llGetKey() ) //We teleported! ( teleporting changes keys )
{
oldkey = llGetKey();
poof();
}
}

listen( integer chan, string name, key id, string msg )
{
docommand( msg );
}

link_message( integer sender, integer num, string str, key id )
{
if ( num == POOF_COMMAND )
docommand( str );
}

changed( integer change )
{
llParticleSystem( [] ); //Stop the particles going off with every modification
}
}
Baron Hauptmann
Just Designs / Scripter
Join date: 29 Oct 2005
Posts: 358
01-23-2007 08:44
First, it makes it easier to deal with scripts when you begin and end with
CODE
 and 
Baron Hauptmann
Just Designs / Scripter
Join date: 29 Oct 2005
Posts: 358
01-23-2007 08:46
First, it makes it easier to deal with scripts when you begin and end with php and /php (enclosed in [square brackets]).

Second, this script seems to work with some other scripts in other prims linked to the one containing this script. But this script itself does not read a notecard at all.

At first glance, it looks like it *should* be working on teleport (though YOU may not see it).

Baron H.
Sweetheart Baskerville
Registered User
Join date: 1 Jan 2004
Posts: 32
Thanks Baron
01-23-2007 08:52
Scripting is something I don't understand..I didn't know it had to have other scripts... Oh well,guess maybe one day I will find one that is complete..lol ... thanks so much for your reply..Thank You, Sweetheart Baskerville,(Juliea) :)
Baron Hauptmann
Just Designs / Scripter
Join date: 29 Oct 2005
Posts: 358
01-23-2007 10:20
IM me sometime in-world; I'll see if I can help you more there.
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
01-24-2007 00:19
Sweetheart,

what are you actually after?
Damanios Thetan
looking in
Join date: 6 Mar 2004
Posts: 992
01-24-2007 06:09
1. The script seems part of a set. Adding a notecard has no use, as the notecard reader script is missing.
2. Script will trigger a particle effect on tp, or on command '/1poof' (channel 1)

Further commands are:
/1pooftexture <texturename, needs to be in contents of poofer>
/1pooftime <time in secs>
/1poofrate <rate>
/1poofspeed <speed>
/1poofscale <scale>
/1poofreset
/1poofdump (dumps current settings)

Don't type the '<' '>'. So: /1pooftime 2.0
_____________________
Sweetheart Baskerville
Registered User
Join date: 1 Jan 2004
Posts: 32
Thank you Damanios
01-24-2007 09:01
Thanks for the information...
Sweetheart (Juliea) :)