Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 102,813
» Latest member: slimjunior86
» Forum threads: 25,598
» Forum posts: 76,946

Full Statistics

 
  Notecard Giver Dialog
Posted by: deadpool - 02-19-2013, 02:29 AM - Forum: Communication Scripts - No Replies

allowing anyone to touch an object and fish out a notecard of choice.

How-to/Info:

•Copy paste the script below into a new script inworld.
•Save it & then put the script into an object (if not there already).
•Add some notecards then touch it.. Info dispenser 2000 ;)

PHP Code:
// Inventory Menu modified to be a notecard giver, for public use
 
key user;
string object_desc "(Touch for Menu;)";
list 
inventory_list;
integer being_used FALSE;
integer menu_channel;
integer menu_handle;
integer menu_counter;
integer menu_parts;
integer inventory_type INVENTORY_NOTECARD;
integer prim_face ALL_SIDES;
float menu_timeout 30.0;
 
set_listen(){
    
llListenRemove(menu_handle);
    
llSetTimerEvent(menu_timeout);
    
menu_handle llListen(menu_channel""""""); 
}
 
inventory_load(){
    
integer i;
    
menu_parts=0;
    
inventory_list = [];
    for(
i=0< = -llGetInventoryNumber(inventory_type);i++){
        
inventory_list += [llGetInventoryName(inventory_type,i)];
        
menu_parts++;
    }
}
 
inventory_menu(){
    list 
menu_buttons;
    
integer i;
    
menu_buttons = [];
    if(
menu_counter 0)
        
menu_buttons += ["•Back"];
    else
        
menu_buttons += [" "];
        
menu_buttons += ["1st Page"];
    if(
menu_counter*8+menu_parts 1)
        
menu_buttons += ["Next•"];
    else
        
menu_buttons += [" "];
    for(
i=menu_counter*8; (<= menu_counter*8+8) && (<= menu_parts 1);i++){
        
menu_buttons += [llGetSubString(llGetInventoryName(inventory_typei),0,23)];
    }
    
llDialog(user"\n\n         (select \"Ignore\" when done.)"menu_buttonsmenu_channel);
}
 
string Name2full(string str1){//Hen Streeter
    
integer u=0;
    for(;
u<llGetInventoryNumber(inventory_type);u++){
        if(
llGetSubString(llGetInventoryName(inventory_type,u),0,23)==str1)//33..
        
return llGetInventoryName(inventory_type,u);
    }return 
"";
}
 
default{
//
    
state_entry(){
        
menu_channel = (integer)llFrand(DEBUG_CHANNEL) * -1;
        
inventory_load();
        
llSetObjectDesc(object_desc);
    } 
//
    
changed(integer c){
        if(
CHANGED_OWNERllResetScript();
        if(
CHANGED_INVENTORYinventory_load();
    }
//   
    
touch_start(integer total_number){
        if(
being_used){
            
llSay(0,"Sorry, I'm currently being used by someone else.");
            return;
        }
        
being_used TRUE;
        
user llDetectedKey(0);
        
set_listen();
        
inventory_menu();
    }
// 
    
timer(){
        
being_used FALSE;
        
user NULL_KEY;
        
llSetTimerEvent(0.0);
        
llListenRemove(menu_handle);
    } 
//
    
listen(integer chanstring whokey idstring msg){
        if(
llGetOwnerKey(id) != user) return;
        if(
chan == menu_channel){
            
llSetTimerEvent(menu_timeout);
            if(
msg == "•Back"){
                
menu_counter--;
                
inventory_menu();
            }
            else if(
msg == "1st Page"){
                
menu_counter=0;
                
inventory_menu();
            }
            else if(
msg == "Next•"){
                
menu_counter++;
                
inventory_menu();
            }            
            else if(
llListFindList(inventory_list,[Name2full(msg)])!=-1){ 
                
msg=Name2full(msg);
                
llGiveInventory(user,msg);
                
llSetTimerEvent(0.1);
            }    
        }
    }
//

Print this item

  Give to Child Prims
Posted by: deadpool - 02-19-2013, 02:28 AM - Forum: Avatar Augmentation Scripts - No Replies

What is it?

Something to aid in the task of dropping the same item into multiple prims (linked set). It allows transfer of any SL inventory items, however any scripts sent to child primitives will need to be re-rezzed/set running. It works by voice commands, you simply say what you want sent to all child prims.

How-to/Info:

•Copy paste the script below into a new script inworld.
•Save it & then put the script into an object (if not there already).
•Example voice command: /1 something

PHP Code:
// This will give items to all child prims in the linked set
// say name of item on given channel, done.
// See http://www.lslwiki.net/lslwiki/wakka.php?wakka=llSetRemoteScriptAccessPin
// for loading scripts as running state
 
integer listenID;
integer cmd_channel 1;
 
default { 
//
    
state_entry(){  
        
listenID llListen(cmd_channel"",llGetOwner(),"");
    }
//
    
on_rez(integer d){
        
llResetScript();
    }
//
    
listen(integer channelstring namekey idstring msg){
        if(
channel == cmd_channel){
            
integer i;
            for (
2llGetNumberOfPrims() + 1i++){
                
llGiveInventory(llGetLinkKey(i), msg);
            }
            
llOwnerSay("If you copied a script to child prims, you will need to re-rez an set script to running.");
            
//llRemoveInventory(llGetScriptName());
        
}
    }
//    

Print this item

  Particle Positioning-Garden
Posted by: deadpool - 02-19-2013, 02:26 AM - Forum: PARTICLES - No Replies

What is it?

A particle emitter created by Jopsy Pendragon, later edited by Joris Tolsen, set to work as a square style particle garden. Since parcels / properties in Second Life don’t have curved edges, this creation is great for utilizing every sqm. Check the commands in script or follow the help prompt when first saving the script.

How-to/Info:

•Copy paste the script below into a new script inworld.
•Save it & then put the script into an object (if not there already).

PHP Code:
//// "Fire" PARTICLE TEMPLATE v1 - by Jopsy Pendragon - 4/8/2008
//// You are free to use this script as you please, so long as you include this line:
//** The original 'free' version of this script came from THE PARTICLE LABORATORY. **//
 
// SETUP:  Drop one optional particle texture and this script into a prim.
// Particles should start automatically. (Reset) the script if you insert a
// particle texture later on.  Add one or more CONTROLLER TEMPLATES to any
// prims in the linked object to control when particles turn ON and OFF.
 
// Customize the particle_parameter values below to create your unique 
// particle effect and click SAVE.  Values are explained along with their
// min/max and default values further down in this script.
 
// converted for pattern spread by Joris Tolsen
// -----------------------------------
// parameters ------------------------
// -- square mode --
float row_space 0.5;
float plant_space 0.5;        // used by circle and random too
float plant_offset 0.0;
integer rows 8;
integer plants 8;
// -- random mode --
integer rand_plants 30;
float rand_width 15.0;
float rand_depth 12.0;           
// -------------------
float   scale 0.5;
integer Handle;
integer Channel 1;
integer active 1;
integer pattern 0;          // 0 = square, 1 = random, 2 = circle
list    plant_list = [];
// ----------------------------------
list particle_parameters=[]; // stores your custom particle effect, defined below.
list target_parameters=[]; // remembers targets found using TARGET TEMPLATE scripts.
maak_part(float distance,float angle,string texture){
        
particle_parameters = [  // start of particle settings
           // Texture Parameters:
           
PSYS_SRC_TEXTURE,   texture,    //llGetInventoryName(INVENTORY_TEXTURE, 0), 
           
PSYS_PART_START_SCALE, &ltscale ,scaleFALSE>,  
           
PSYS_PART_END_SCALE, &ltscale ,scaleFALSE>, 
           
PSYS_PART_START_COLOR, &lt1,1,1>,    
           
PSYS_PART_END_COLOR, &lt1,1,1>, 
           
PSYS_PART_START_ALPHA, (float)1,            
           
PSYS_PART_END_ALPHA, (float)1,     
           
// Production Parameters:
           
PSYS_SRC_BURST_PART_COUNT2
           
PSYS_SRC_BURST_RATE, (float) 0.01,  
           
PSYS_PART_MAX_AGE, (float)30.0
           
PSYS_SRC_MAX_AGE,(float) 0.0,  
           
// Placement Parameters:
           
PSYS_SRC_PATTERN, (integer)4// 1=DROP, 2=EXPLODE, 4=ANGLE, 8=ANGLE_CONE,
           // Placement Parameters (for any non-DROP pattern):
           
PSYS_SRC_BURST_SPEED_MIN, (float)0,   
           
PSYS_SRC_BURST_SPEED_MAX, (float)0
           
PSYS_SRC_BURST_RADIUSdistance,
           
// Placement Parameters (only for ANGLE & CONE patterns):
           
PSYS_SRC_ANGLE_BEGINangle,     
           
PSYS_SRC_ANGLE_ENDangle,  
        
// PSYS_SRC_OMEGA, &lt;0,0,0>, 
           // After-Effect & Influence Parameters:
        //   PSYS_SRC_ACCEL, &lt;0.0,0.0,0.01>,  
        // PSYS_SRC_TARGET_KEY,      llGetLinkKey(llGetLinkNum() + 1),       
           
PSYS_PART_FLAGS, (integer)( 0         // Texture Options:     
                             //   | PSYS_PART_INTERP_COLOR_MASK   
                             //   | PSYS_PART_INTERP_SCALE_MASK   
                             //   | PSYS_PART_EMISSIVE_MASK   
                             //   | PSYS_PART_FOLLOW_VELOCITY_MASK
                                                  // After-effect & Influence Options:
                             //   | PSYS_PART_WIND_MASK            
                             //   | PSYS_PART_BOUNCE_MASK          
                             // | PSYS_PART_FOLLOW_SRC_MASK     
                             // | PSYS_PART_TARGET_POS_MASK     
                             // | PSYS_PART_TARGET_LINEAR_MASK   
                            

            
//end of particle settings                     
        
];
        
llParticleSystemparticle_parameters );
}
// ---------------------------------
// calculate where the plants go
// ---------------------------------
planten(){
    if (
pattern==0){
        
planten_square();
    } 
    else if (
pattern==1){
        
planten_list();
    }
}
planten_square(){
    
integer plants_row=0;       // will be set by script !!!
    
integer plants_row_odd=0;   // will be set by script !!
    
integer number llGetInventoryNumber(INVENTORY_TEXTURE);
    
integer textcnt=0;
    
vector begin_pos;
    
vector thrower_pos;
    
integer rc;     // row counter
    
integer pc;     // plant counter
    
float rl=0.0;   // row length
    
float fl=0.0;   // field length
    
begin_pos=llGetPos();
    
thrower_pos=llGetPos();
    
plants_row=plants/2;
    if (
plants plants_row plants_row 0){
        
plants_row_odd=1;
    }
    if (
rows 1){
        
fl rows*row_space-row_space;
        
begin_pos.x-=fl/2.0;
    }
    if (
plants_row 1){
        
rl=plants_row*plant_space-plant_space;
    }
    if (!
plants_row_odd){
        
begin_pos.y+=plant_space/2.0;       // even number of rows  .. take offset
    
}
    
begin_pos.x+=plant_offset;
     for(
rc=0rcrows rc++){
        
float rx=begin_pos.x+rc*row_space;
        for (
pc=0pc<plants_row+plants_row_odd;pc++){
            
float py=begin_pos.y+pc*plant_space;
            
float dst;
            
float ang;
            
float ro=rx-thrower_pos.x;
            
float po=py-thrower_pos.y;
            
dst llSqrt(ro*ro+po*po);
            
ang llAtan2(po,ro);
            
maak_part(dst,ang,llGetInventoryName(INVENTORY_TEXTURE,textcnt));
            if (++
textcnt >= numbertextcnt=0;
            
llSleep(0.05);
        }
    }
    
llParticleSystem([]);
}
planten_list(){
    
integer planten llGetListLength(plant_list);       // will be set by script !!!
    
vector pos;
    
vector thrower_pos;
    
vector begin_pos;
    
integer pc;     // plant counter
    
thrower_pos=llGetPos();
    
begin_pos=thrower_pos;
    
begin_pos.x+=plant_offset;
    for (
pc=0pcplanten pc++){
        
vector pp;
        
pp=llList2Vector(plant_list,pc);
        
float px=begin_pos.x+pp.x;
        
float py=begin_pos.y+pp.y;
        
float dst;
        
float ang;
        
float ro=px-thrower_pos.x;
        
float po=py-thrower_pos.y;
        
dst llSqrt(ro*ro+po*po);
        
ang llAtan2(po,ro);
        
maak_part(dst,ang,llGetInventoryName(INVENTORY_TEXTURE,(integer)llFloor(pp.z)));
        
llSleep(0.05);
    }
    
llParticleSystem([]);
}
maak_list(){
    
plant_list=[];
    
integer pc;     // plant counter
    
integer number llGetInventoryNumber(INVENTORY_TEXTURE);
    
float hpd=plant_space/2.0;
    
float dpt=(rand_depth-plant_space)/2.0;
    for (
pc=0pc<rand_plants;pc++) {
        
integer fout=0;
        
vector pp;
        do{
            
fout=0;
            
pp=<llFrand(rand_width)-(rand_width/2),llFrand(dpt)+hpd,llFrand(number)>;
            
// check distance
            
integer len llGetListLength(plant_list);
            if (
len 0){
                
integer tel;
                for (
tel=0;!fout && tel len ;tel++){
                    
vector lp=llList2Vector(plant_list,tel);
                    if (
llVecDist(lp,pp)<plant_space){
                        
fout=1;
                    }
                }
            }
        } 
        while (
fout);
        
plant_list += [pp];
    }
}
// -------------------------------------
// check if and which command is in str
// -------------------------------------
string checkMatchstring str, list prefixes  ){
    
integer numElements llGetListLengthprefixes );
    
integer i;
    
integer lastChar;
    
string curPrefix;
    
string curStr llToLowerstr );
    for( 
i=0i<numElementsi++ ){
        
curPrefix llList2String(prefixesi);
        
lastChar llStringLengthcurPrefix );
        
lastChar -= 1;
        if ( 
llGetSubString(curStr0lastChar) == curPrefix )
           return 
curPrefix;
    }
    return 
"";
}
help(){
    
llOwnerSay("command format /"+(string)Channel+" command value");
    
llOwnerSay("commands recognized :");
    
llOwnerSay("uit off stop        : switch the particles off");
    
llOwnerSay("aan on start        : switch the particles on");
    
llOwnerSay("regels rows         : number of rows to plant");
    
llOwnerSay("plants planten      : number of plants per row/random patern");
    
llOwnerSay("offset plaats       : shift the rows away from the center");
    
llOwnerSay("plantspace          : space between plants");
    
llOwnerSay("rowspace            : space between rows");
    
llOwnerSay("show toon           : make spreader visible");
    
llOwnerSay("hide verstop        : hide the spreader");
    
llOwnerSay("square              : square plants in rows");
    
llOwnerSay("random              : generate random pattern");
    
llOwnerSay("width               : width of the random pattern");
    
llOwnerSay("depth               : dept of the random pattern");
    
llOwnerSay("scale               : scale factor of the particle");
}
init(){
    
llSetTimerEvent(12.5);
    
planten();
    
Handle llListen(Channel""llGetOwner(), "");
    
active=1;
    if (
pattern == 1maak_list();
}
 
default{
 
    
state_entry(){
        
llOwnerSay("Commands == /"+(string)Channel+" help ");
        
init();
    }
 
    
on_rez(integer count){
        
llResetScript();
    }
 
    
timer(){
        
planten();
    }
 
    
touch_start(integer count){
        if (
active){
            
llSetTimerEvent(0.0);
            
active=0;
        }
        else{
            
init();
        }
    }
 
    
listen(integer channel,string name,key id,string message) {
        
string match;
        
integer divide=llSubStringIndex(message," ");
        
string gSubCommand llToLower(llGetSubString(messagedivide 140)); // grab the rest of the input string.
        
match checkMatchmessage, ["offset""plaats"] );
        if( 
match != "" ) {
            
plant_offset=(float)gSubCommand;
        } else {
         
match checkMatchmessage, ["uit""off""stop"] );
        if( 
match != "" ) {
             
llSetTimerEvent(0.0);
             
active=0;
        } else {
        
match checkMatchmessage, ["aan""on""start"] );
        if( 
match != "" ) {
             
init();
        } else {
        
match checkMatchmessage, ["plantspace""plantafstand"] );
        if( 
match != "" ) {
            
plant_space=(float)gSubCommand;
        } else {
        
match checkMatchmessage, ["rowspace""rijafstand"] );
        if( 
match != "" ) {
            
row_space=(integer)gSubCommand;
        } else {
        
match checkMatchmessage, ["rows""regels"] );
        if( 
match != "" ) {
            
integer rw=0;
            
rw=(integer)gSubCommand;
            if (
rw 0rows rw;           
        } else { 
        
match checkMatchmessage, ["plants""planten"] );
        if( 
match != "" ) {
            
integer pl=0;
            
pl=(integer)gSubCommand;
            if (
pl 0) {
                if (
pattern == 1) {
                    
rand_plants=pl;
                    
maak_list();
                } else {
                    
plants=pl;
                }
            }
        } else {
        
match checkMatchmessage, ["show""toon"] );
        if( 
match != "" ) {
            
llSetAlpha(1.0,ALL_SIDES);
        } else {
        
match checkMatchmessage, ["hide""verstop"] );
        if( 
match != "" ) {
             
llSetAlpha(0.0,ALL_SIDES);
        } else {
        
match checkMatchmessage, ["width"] );
        if( 
match != "" ) {
            
rand_width=(float)gSubCommand;
        } else {
        
match checkMatchmessage, ["depth"] );
        if( 
match != "" ) {
            
rand_depth=(float)gSubCommand;
        } else {
        
match checkMatchmessage, ["square"] );
        if( 
match != "" ) {
            
pattern=0;
        } else {
        
match checkMatchmessage, ["random"] );
        if( 
match != "" ) {
            
pattern=1;
            
maak_list();
        } else {
        
match checkMatchmessage, ["scale"] );
        if( 
match != "" ) {
            
scale = (float)gSubCommand;
        } else {
            
help();
        }}}}}}}}}}}}}}
    }

Print this item

  Ducknipple Neverland Shoppe 4
Posted by: Femme - 02-19-2013, 02:22 AM - Forum: Commercial Structures - Replies (2)

[Image: neverland4.jpg?1316117235]


[To see links please register here]

Print this item

  -CandyDoll- Little Store
Posted by: Femme - 02-19-2013, 02:19 AM - Forum: Commercial Structures - Replies (2)

[Image: 2dbv4tz.jpg]

[To see links please register here]

Print this item

  Particle Targeting
Posted by: deadpool - 02-19-2013, 02:19 AM - Forum: PARTICLES - No Replies

How-to/Info:

•Copy paste the scripts below into new scripts inworld.
•Save it & then put them into separate objects (if not there already).
•Touch the object with the Give Key script.
•The Particle Script should now have it’s particle streaming towards the ‘Give Key’ object.

Give Key Script

PHP Code:
integer our_channel = -1212123;
default{
    
touch_start(integer total_number){
        
llSay(our_channel"Key="+(string)llGetKey());
    }


Particle Script
PHP Code:
//We listen on this channel for our target key
integer our_channel = -1212123;
//Message we listen for "Key=b31b25aa-de... etc". The = symbol being the seperator.
 
//Particle Params
key target;
integer glow TRUE;           
integer bounce FALSE;         
integer interpColor TRUE;    
integer interpSize TRUE;      
integer wind FALSE;           
integer followSource FALSE;    
integer followVel TRUE;       
integer pattern PSYS_SRC_PATTERN_ANGLE_CONE;
float age 5.0;                  
float maxSpeed 1.5;            
float minSpeed 0.5;           
string texture "b31b25aa-de9a-32d7-7c3d-6cfb997c37ba";                 
float startAlpha 1.0;           
float endAlpha 1.0;           
vector startColor = <1,1,1>;    
vector endColor = <0,0,0>;     
vector startSize = <0.0,0.0,0.0>;    
vector endSize = <0.1,0.1,0.0>;       
vector push = <0,0,0>;          
float rate 0.01;           
float radius 0.0;         
integer count 1000;        
float outerAngle 1.55;   
float innerAngle 1.55;   
vector omega = <20,20,20>;    
float life 0;             
integer flags;
set_particles(){
    if (
glowflags flags PSYS_PART_EMISSIVE_MASK;
    if (
bounceflags flags PSYS_PART_BOUNCE_MASK;
    if (
interpColorflags flags PSYS_PART_INTERP_COLOR_MASK;
    if (
interpSizeflags flags PSYS_PART_INTERP_SCALE_MASK;
    if (
windflags flags PSYS_PART_WIND_MASK;
    if (
followSourceflags flags PSYS_PART_FOLLOW_SRC_MASK;
    if (
followVelflags 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_COLORstartColor,
        
PSYS_PART_END_COLORendColor,
        
PSYS_PART_START_SCALE,startSize,
        
PSYS_PART_END_SCALE,endSize
        
PSYS_SRC_PATTERNpattern,
        
PSYS_SRC_BURST_RATE,rate,
        
PSYS_SRC_ACCELpush,
        
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_OMEGAomega,
        
PSYS_SRC_MAX_AGElife,
        
PSYS_SRC_TEXTUREtexture,
        
PSYS_PART_START_ALPHAstartAlpha,
        
PSYS_PART_END_ALPHAendAlpha]);
}
 
default{
//
    
state_entry(){
        
llListen(our_channel"","","");
        
set_particles();
    }
//
    
listen(integer channelstring namekey idstring message){
        if (
channel == our_channel){
            list 
cmd_list llParseString2List(message, ["="], []);
            
string cmd0 llList2String(cmd_list0);
            
string cmd1 llList2String(cmd_list1);
            if(
cmd0 == "Key"){
                
target = (key)cmd1;
                
set_particles();
            }
        }
    }
//

Print this item

  Sim Wide Chat
Posted by: deadpool - 02-19-2013, 02:16 AM - Forum: Communication Scripts - No Replies

What is it?

A basic relay system that sends and receives messages on a given channel. So you can talk to your friends (some of;) at ground level while you’re miles above, and vice versa. The messages are encrypted for privacy. You can find the original I hacked to pieces by clicking here, full credit to Kireji Haiku for creating *SIMchat_headset* so I and others can learn/create.

How-to/Info:

•Copy paste the script below into a new script inworld.
•Save it & then put the script into an object (if not there already)

PHP Code:
// Converted to use inscript config(removed need for notecard), removed extra states
// added link_message, changed to owner only usage/HUD/attachment
 
//
integer secret_channel 10;
//
 
key owner;
string  name;
string  header;
string  protocol_signature "SPY";
string  password "P@ssw0rD";
string  strHex "0123456789ABCDEF";
float   protocol_version 0.3;
vector  on_color = <0.468,1.000,0.683>;
vector  off_color = <1.000,0.468,0.468>;
integer secret_listen;
integer active 0;
 
init(){
    
owner llGetOwner();
    list 
versions llParseString2List((string)protocol_version, ["."], []);
    
string minor llList2String(versions1);
    
integer p 0;
    while(
llGetSubString(minor, --pp) == "0");
    
header protocol_signature hex(llList2Integer(versions0)) + hex((integer)llGetSubString(minor0xFF000000p));
}
 
on(){
    
llListenRemove(secret_listen);
    
secret_listen llListen(secret_channel"""""");
    
llSetColor(on_colorALL_SIDES);
    
llOwnerSay("/me ("+(string)secret_channel+") : ON :");
}
off(){
    
llListenRemove(secret_listen);
    
llSetColor(off_colorALL_SIDES);
    
llOwnerSay("/me ("+(string)secret_channel+") : OFF :");
}
 
string  hex(integer value){
    
integer digit value 0xF;
    
string text llGetSubString(strHexdigitdigit);
    
value = (value >> 4) & 0xfffFFFF;
    
integer odd TRUE;
    while(
value){
        
digit value 0xF;
        
text llGetSubString(strHexdigitdigit) + text;
        
odd = !odd;
        
value value >> 4;
    }
    if(
odd)
        
text "0" text;
    return 
text;
}
 
string  encrypt(string passwordstring message){
    
integer nonce = (integer)llFrand(0x7FFFFFFF);
    
message llMD5String(messagenonce) + message;
    
string oneTimePad llMD5String(passwordnonce);
    
integer count = (llStringLength(message) - 1) / 32;
    if(
count) do oneTimePad += llMD5String(oneTimePadnonce);
    while(--
count);
    return 
header llGetSubString("00000000" hex(nonce), -8, -1) + llXorBase64StringsCorrect(llStringToBase64(message), llStringToBase64(oneTimePad));
}
 
string  decrypt(string passwordstring message){
    
integer signature_length llStringLength(protocol_signature);
    
integer header_length signature_length 12;
    if(
llStringLength(message) < signature_length 44)
        
llOwnerSay("/me • Bugger: Insufficient data.");
    
integer index signature_length;
    
string major "0x" llGetSubString(messageindex, ++index);
    
string minor "0x" llGetSubString(message, ++index, ++index);
    
integer nonce = (integer)("0x" llGetSubString(message, ++indexindex 7));
    
message llGetSubString(messageheader_length, -1);
    
string otp llMD5String(passwordnonce);
    while(
llStringLength(otp) < (llStringLength(message) / 3))
    
otp += llMD5String(otpnonce);
    
otp llStringToBase64(otp);
    
message llXorBase64StringsCorrect(messageotp);
    
message llBase64ToString(message);
    
string digest llGetSubString(message031);
    
message llGetSubString(message32, -1);
    if(
llMD5String(messagenonce) != digest)
        
llOwnerSay("/me • Bugger: Try again?...");
    return 
message;
}
 
say(string whostring message){
    
llSetObjectName(who);
    
llSleep(llGetRegionTimeDilation()+0.04);
    
llOwnerSay(message);
    
llSetObjectName(" ");
}
 
default{
//
    
attach(key id){
        if(
id){//tests if it is a valid key and not NULL_KEY
            
llOwnerSay("/me • Channel for sim Talk /"+(string)secret_channel);
        }else{
            
llOwnerSay("/me `0'");
        }
    }
//
    
state_entry(){
        
init();
    }
//
    
touch_start(integer d){
        
active =! active;
        if(
active){
            
off();
        }else{
            
on();
        }
    }
//
    
changed(integer c){
        if(
CHANGED_OWNER){
            
llResetScript();
        }
 
    }
// 
    
link_message(integer senderinteger codestring strkey id){
        if (
str == "DCOMM"){//llMessageLinked(LINK_THIS, 0, "DCOMM","ON");
            
if(id == "ON"on();
            else if(
id == "OFF"off();
        }
    }
//
    
listen(integer channelstring namekey idstring message){
        if (
channel == secret_channel){
            if (
id == owner){
                
llRegionSay(secret_channelencrypt(passwordmessage));
                
say(name,message);
            }
            else if (
llGetAgentSize(id) == ZERO_VECTOR){
                
say(llKey2Name(llGetOwnerKey(id)),decrypt(passwordmessage));
            }
        }
    }
//

Print this item

  -SD- Serini Design //Celestial Shop//
Posted by: Femme - 02-19-2013, 02:13 AM - Forum: Commercial Structures - No Replies

[Image: celestialshop.png]

[To see links please register here]

Print this item

  ABAR Full Store Rip
Posted by: Femme - 02-19-2013, 02:12 AM - Forum: Commercial Structures - No Replies

This store had everything out. Their sculpts looked perfect I wish they would make less child/baby stuff because this is one talented sculptor but I have no need for kid things.

[To see links please register here]

Print this item

  P-Master
Posted by: deadpool - 02-19-2013, 02:08 AM - Forum: PARTICLES - No Replies

What is it?

This is something I’ve made to help scripters & non-scripters alike. It will read the particle parameters from a notecard you select. You can load literally hundreds & hundreds of notecards, building a large library of particle effects. All a user has to do is copy a notecard & then change some of the values listed.. Select your new notecard from the dialog menu & presto, you can view your newly made particle effect. I’ve tried to make the script so it’s easily edit0red into another system:)

How-to/Info:

•Copy paste the ‘script’ below into a new script inworld.
•Copy paste the ‘notecard’ below into a new notecard inworld.
•Save them & then put them into an object (if not there already).
•Touch it.

From the script you can redefine the name of the default notecard, for me its set to *Default Particles*. Once you are sure you have the notecard name matching the name in the script, you can begin making some custom effects.

PHP Code:
//Do not sell this; Karma knowz where you live ☠
 
// Made to read particle params from notecards, allowing storage of more effects in an active object.
 
Help(){
    
llOwnerSay("/me :: Custom Editing Instructions ::
This tools aim is; To easily edit new particle effects &amp; build up a collection of notecard configurations. Each being able to have the params posted cleanly into chat privately for usage in other scripts or projects. The menu system is set to allow any number of notecards (hundreds &amp; hundreds;) I suggest you name the start of the notecard with a name, so it fits on the menu button.
 
The notecard named \"Default Particles\" should be found in this prims inventory. I've added lots of comments hoping to make it a little easier to remember which does what.. Read the comments in the notecard for direct info on how to edit the notecard into your own custom made particle effects.
 
TIP; Less comments in the notecard = the faster it will load, keep the default notecard full of comments but try to remove them from your custom made notecards/parameters.\n"
);
    
llSleep(llGetRegionTimeDilation()+0.04);//make sure the ownersay below doesn't show up before the above~.. it happens.
    
llOwnerSay("/me :: Editing The Notecard ::
Once you have edited a notecard you can simply drop it into this prim, if its not here already. Once in the prim you can select \"Notecards\" from the menu then select your effect; After a short load time (shorter = less comments) the particle effect will start. If it doesn't start then its highly possible you've put in some odd values, rendering the particles invisible for eg. Check them ;) To list the parameters without the comments select \"Spam ON\" from the menu options. This will make pasting into a script much easier.
 
Thats about it, read the notecard comments, build up a nice collection; share with friends your notecard configs etc =]
If you're new to particles &amp; would like to know more; Visit Jopsy Pendragon's \"The Particle Laboratory\" for comprehensive help/info."
);
}
//
key Owner;//see state_entry
integer dMenu 0;//counter
integer Parts;//parts
list List;//inventory list
integer dChannel;//menu channel
integer dHandle;//handle for inventory menu listen
integer Type INVENTORY_NOTECARD;//make sure inv menu pulls up notecards only from the inventory
integer loopSound FALSE;//default value for the looped sound effect
float soundVolume 1.0;//for sound functions
key soundEffect ="cc385f87-8248-df57-ad04-40813444d540";//default sound effect; triggered once when particles start
key soundLooped "0671e204-d976-fcc7-f907-a5010546e7b8";//default loop sound effect, lopping until stopped
float MenuTimer 60;//how long to keep menus/listen active
//
integer nLine;//notecard line number
key queryID NULL_KEY;//key id for data event
string Notecard "*Default Particles*";//name of our notecard//default particle effect
integer spam FALSE;//Set to TRUE if you want params said to chat
integer UpdateOnChange FALSE;//read notecard (if TRUE) when inventory changes
list MenuButtons = ["•","Notecards","•","•OFF•","•RESET•","•HELP•","Spam ON","•","Spam OFF","INVU ON","•","INVU OFF"];
 
mainMenu(){
    
llListenRemove(dHandle);
    
llSetTimerEvent(MenuTimer);
    
dHandle llListen(dChannel"""""");
    
string spammage;
    
string invUpdate;
    if(
spam)spammage "ON";
        else 
spammage "OFF";
    if(
UpdateOnChange)invUpdate "ON";
        else 
invUpdate "OFF";
    
llDialog(Owner"
Inv Update = "
+invUpdate+"
Spam Params = "
+spammage+"
 
•Help = Post privately some help on custom effects.
•INVU = Inventory Update, this set to ON will result in the particles being updated when you hit \"Save\" on a particle 'notecard'.
•Spam = Toggle the option to post in chat the particle parameters from the notecard selected.
•Notecards = List the notecards currently loaded (near limitless capacity;)
•OFF = Stop/Turn off all particle effects.
•RESET = Reset the core script."
MenuButtonsdChannel);
}
Load(){integer i;
    
Parts=0;
    List = [];
    for(
i=0i&lt;= -llGetInventoryNumber(Type);i++){
        List += [
llGetInventoryName(Type,i)];
        
Parts++;
    }
}
invMenu(){
    
llSetTimerEvent(MenuTimer);
    list 
Menu;
    
integer i;
    
Menu = [];
    if(
dMenu &gt0)
        
Menu += ["&lt;&lt;Back"];
    else
        
Menu += ["&lt;&lt;&lt;&lt;"];
        
Menu += ["-Main-"];
    if(
dMenu*8+&ltParts 1)
        
Menu += ["Next&gt;&gt;"];
    else
        
Menu += [" "];
    for(
i=dMenu*8; (&lt;= dMenu*8+8) &amp;&amp; (&lt;= Parts 1);i++){
        
Menu += [llGetSubString(llGetInventoryName(Typei),0,23)];
    }
    
llDialog(Owner"\n*Select desired particle effect;"MenudChannel);
}
 
string Name2full(string str1){
    
integer u=0;
    for(;
u&lt;llGetInventoryNumber(Type);u++){
        if(
llGetSubString(llGetInventoryName(Type,u),0,23)==str1)//33..
        
return llGetInventoryName(Type,u);
    }
    return 
"";
}
 
// Default Particle Params
integer pFlags;
integer running             TRUE;
string  texture;
vector  startSize;
vector  endSize;
vector  startColor;
vector  endColor;
float   startAlpha;
float   endAlpha;
float   particleAge;
float   systemAge;
float   burstRate;
integer burstCount;
float   radius;
float   angleStart;
float   angleEnd;
vector  omega;
float   minSpeed;
float   maxSpeed;
vector  acceleration;
key     target;
integer glowEffect;
integer colorInterpolation;
integer sizeInterpolation;
integer followVelocity;
integer windEffect;
integer bounceEffect;
integer followSource;
//Uncomment the following selections once they've been implemented
//integer randomAcceleration;
//integer randomVelocity;
//integer particleTrails;
integer pattern;
 
Particles(){pFlags 0;
    if (
colorInterpolation)             pFlags pFlags|PSYS_PART_INTERP_COLOR_MASK;
    if (
sizeInterpolation)              pFlags pFlags|PSYS_PART_INTERP_SCALE_MASK;
    if (
windEffect)                     pFlags pFlags|PSYS_PART_WIND_MASK;
    if (
bounceEffect)                   pFlags pFlags|PSYS_PART_BOUNCE_MASK;
    if (
followSource)                   pFlags pFlags|PSYS_PART_FOLLOW_SRC_MASK;
    if (
followVelocity)                 pFlags pFlags|PSYS_PART_FOLLOW_VELOCITY_MASK;
    if (
target!=NULL_KEY)               pFlags pFlags|PSYS_PART_TARGET_POS_MASK;
    if (
glowEffect)                     pFlags pFlags|PSYS_PART_EMISSIVE_MASK;
//Uncomment the following selections once they've been implemented
    //if (randomAcceleration) pFlags = pFlags|PSYS_PART_RANDOM_ACCEL_MASK;
    //if (randomVelocity)     pFlags = pFlags|PSYS_PART_RANDOM_VEL_MASK;
    //if (particleTrails)     pFlags = pFlags|PSYS_PART_TRAIL_MASK;
    
llParticleSystem([
        
PSYS_PART_FLAGS,            pFlags,
        
PSYS_SRC_PATTERN,           pattern,
        
PSYS_PART_START_COLOR,      startColor,
        
PSYS_PART_END_COLOR,        endColor,
        
PSYS_PART_START_ALPHA,      startAlpha,
        
PSYS_PART_END_ALPHA,        endAlpha,
        
PSYS_PART_START_SCALE,      startSize,
        
PSYS_PART_END_SCALE,        endSize,
        
PSYS_PART_MAX_AGE,          particleAge,
        
PSYS_SRC_ACCEL,             acceleration,
        
PSYS_SRC_TEXTURE,           texture,
        
PSYS_SRC_BURST_RATE,        burstRate,
        
PSYS_SRC_ANGLE_BEGIN,       angleStart,
        
PSYS_SRC_ANGLE_END,         angleEnd,
        
PSYS_SRC_BURST_PART_COUNT,  burstCount,
        
PSYS_SRC_BURST_RADIUS,      radius,
        
PSYS_SRC_BURST_SPEED_MIN,   minSpeed,
        
PSYS_SRC_BURST_SPEED_MAX,   maxSpeed,
        
PSYS_SRC_MAX_AGE,           systemAge,
        
PSYS_SRC_TARGET_KEY,        target,
        
PSYS_SRC_OMEGA,             omega   ]);
}
//send request to dataserver
ReadNotecard(string n){
    
//Memory(llGetFreeMemory());
    
nLine 0;
    
llOwnerSay("/me &gt;&gt; Reading particle parameters from notecard \"" "\". Please wait;");
    if(
spam)llOwnerSay("/me //Start; Particle parameters.");
    
queryID llGetNotecardLine(NotecardnLine);
}
//check memory Memory(llGetFreeMemory());
Memory(integer mem){
    
llOwnerSay("/me &gt;&gt; "+(string)mem " of free memory available `0'");
}
//check if a key is valid
integer isKey(key in){
    if(
in) return 2;
    return (
in == NULL_KEY);
}
// check to make sure notecard exists
list dList;
list 
InventoryList(){integer i;
    list 
result = [];
    
integer n llGetInventoryNumber(INVENTORY_NOTECARD);
    for( 
0&ltni++ ){result += [llGetInventoryName(INVENTORY_NOTECARDi)];
    }
    return 
result;
}
//
StopEffects(){
    
llStopSound();
    
llParticleSystem([]);
}
 
default{
    
state_entry(){
        
Owner llGetOwner();
        
Load();//load inventory
        
dChannel = (integer)llFrand(DEBUG_CHANNEL) * -1;
        
StopEffects();
        
llOwnerSay("/me &gt;&gt; Script successfully Reset;");
        
//llOwnerSay((string)llGetLinkNumber());
    
}
//
    
touch_start(integer total_number){
        if(
llDetectedKey(0) != Owner)return;//Only work for set user
        
mainMenu();//open menu
        // Some effects for button;
        
integer touchedFace llDetectedTouchFace(0);
        
vector oldColor llGetColor(touchedFace);// Store away the original color
        
llSetColor(&lt;0.255.0.&gt;, touchedFace);// Flash color
        
llSleep(0.04);
        
llSetColor(oldColortouchedFace);// Put the color back to how we found it.
    
}
//
    
timer(){//remove lag/listen &amp; stop timer
        
llSetTimerEvent(0.0);
        
llListenRemove(dHandle);
    }
//
    
listen(integer chanstring whokey idstring msg){//we listen for responses from menu
        //llOwnerSay((string)chan+", "+who+", "+(string)id+", "+msg);
        
if(chan == dChannel){
            if(
msg == "&lt;&lt;&lt;&lt;"){
                
dMenu=0;
                
mainMenu();
            }else if(
msg == "Notecards"){
                
invMenu();
            }else if(
msg == "•OFF•"){
                
StopEffects();
            }else if(
msg == "•HELP•"){
                
Help();
            }else if(
msg == "•RESET•"){
                
llResetScript();
            }else if(
msg == "Spam ON"){spam TRUE;
                
llOwnerSay("/me &gt;&gt; Spam ON; The particle parameters will now be posted privately into chat.
                (This is helpful when copy-pasting params into another script/project)"
);
            }else if(
msg == "Spam OFF"){spam FALSE;
                
llOwnerSay("/me &gt;&gt; Spam OFF;");
            }else if(
msg == "INVU ON"){UpdateOnChange TRUE;
                
llOwnerSay("/me &gt;&gt; Inventory Update ON; When you save a notecard it will update the current particle system.
                (This is helpful when editing notecards to see the changes quickly, keep it off for day-2-day usage)"
);
            }else if(
msg == "INVU OFF"){UpdateOnChange FALSE;
                
llOwnerSay("/me &gt;&gt; Inventory Update OFF;");
            }else if(
msg == "&lt;&lt;Back"){
                
dMenu--;
                
invMenu();
            }else if(
msg == "-Main-"){
                
dMenu=0;
                
invMenu();
            }else if(
msg == "Next&gt;&gt;"){
                
dMenu++;
                
invMenu();
            }else if(
llListFindList(List,[Name2full(msg)])!=-1){
                
Notecard Name2full(msg);
                
ReadNotecard(Notecard);
            }
        }
    }
//
    
dataserver(key qidstring data){
        if (
qid == queryID){
            if (
data != EOF){
                
//llOwnerSay((string)(nLine + 1) + ". Read: " + data);
                // search the "=" sign and take the rest of the text
                
integer nEqualPos llSubStringIndex(data"=");
                if (
nEqualPos != -1){
                    
// before
                    
string Entry llGetSubString(data0nEqualPos 1);
                    
// after
                    
string Value llGetSubString(datanEqualPos 1, -1);
                    if (
Entry == "target"){// Target
                        
if(Value == "NULL_KEY"||Value == "target="){target NULL_KEY;
                            if(
spamllOwnerSay("/me key target = \"" + (string)target "\";");
                        }else if(
Value == "llGetKey()"){target llGetKey();
                            if(
spamllOwnerSay("/me target = \"" + (string)target "\";");
                        }else if(
Value == "llGetOwner()"){target llGetOwner();
                            if(
spamllOwnerSay("/me target = \"" + (string)target "\";");
                        }else{
target = (key)Value;
                            if(
spamllOwnerSay("/me key target = \"" + (string)target "\";");
                        }
                    }
                    else if (
Entry == "texture"){// Texture
                        
integer result isKey(Value);
                        if(
result){texture = (key)Value;
                            if(
spam)llOwnerSay("/me key texture = \"" + (string)texture "\";");
                        }else{
                            if(
Value == "texture="||Value == "NULL_KEY"){texture NULL_KEY;
                                if(
spam)llOwnerSay("/me key texture = \"" Value "\";");
                            }else{
llOwnerSay("/me &gt;&gt; texture ERROR; You did not enter a valid texture key; You tried to input "+Value);
                            }
                        }
                    }
                    else if (
Entry == "startSize"){// Start size
                        
vector v = (vector)Value;
                        if(
v.&gt4.0 || v.&gt4.0 || v.&gt4.0){
llOwnerSay("/me &gt;&gt; startSize ERROR; You did not enter a valid vector; Maximum size is 4.0m.. You tried to input "+Value);
                        }if(
v.&lt0.0 || v.&lt0.0 || v.&lt0.0){
llOwnerSay("/me &gt;&gt; startSize ERROR; You did not enter a valid vector; Minimum size is 0.0m.. You tried to input "+Value);
                        }else{
startSize = (vector)Value;
                            if(
spam)llOwnerSay("/me vector startSize = " + (string)startSize ";");
                        }
                    }else if (
Entry == "endSize"){// End size
                        
vector v = (vector)Value;
                        if(
v.&gt4.0 || v.&gt4.0 || v.&gt4.0){
llOwnerSay("/me &gt;&gt; endSize ERROR; You did not enter a valid vector; Maximum size is 4.0m.. You tried to input "+Value);
                        }if(
v.&lt0.0 || v.&lt0.0 || v.&lt0.0){
llOwnerSay("/me &gt;&gt; endSize ERROR; You did not enter a valid vector; Minimum size is 0.0m.. You tried to input "+Value);
                        }else{
endSize = (vector)Value;
                            if(
spam)llOwnerSay("/me vector endSize = " + (string)endSize ";");
                        }
                    }else if (
Entry == "startColor"){// Start Color
                        
vector v = (vector)Value;
                        if(
v.&gt1.0 || v.&gt1.0 || v.&gt1.0){
llOwnerSay("/me &gt;&gt; startColor ERROR; You did not enter a valid color vector; Maximum value is from 0 to 1.. You tried to input "+Value);
                        }if(
v.&lt0.0 || v.&lt0.0 || v.&lt0.0){
llOwnerSay("/me &gt;&gt; startColor ERROR; You did not enter a valid color vector; Minimum value is from 0 to 1.. You tried to input "+Value);
                        }else{
startColor = (vector)Value;
                            if(
spam)llOwnerSay("/me vector startColor = " + (string)startColor ";");
                        }
                    }else if (
Entry == "endColor"){//End color
                        
vector v = (vector)Value;
                        if(
v.&gt1.0 || v.&gt1.0 || v.&gt1.0){
llOwnerSay("/me &gt;&gt; endColor ERROR; You did not enter a valid color vector; Maximum value is from 0 to 1.. You tried to input "+Value);
                        }if(
v.&lt0.0 || v.&lt0.0 || v.&lt0.0){
llOwnerSay("/me &gt;&gt; endColor ERROR; You did not enter a valid color vector; Minimum value is from 0 to 1.. You tried to input "+Value);
                        }else{
endColor = (vector)Value;
                            if(
spam)llOwnerSay("/me vector endColor = " + (string)endColor ";");
                        }
                    }else if (
Entry == "startAlpha"){// Start alpha
                        
if((float)Value &gt1.0){
llOwnerSay("/me &gt;&gt; startAlpha ERROR; The values we can set for alpha = from 0.00 (invisible) to 1.00 (visible); You tried to input value "+Value);
                        }else if((float)
Value &lt0.0){
llOwnerSay("/me &gt;&gt; startAlpha ERROR; The values we can set for alpha = from 0.00 (invisible) to 1.00 (visible); You tried to input value "+Value);
                        }else{
                            
startAlpha = (float)Value;
                            if(
spam)llOwnerSay("/me float startAlpha = " + (string)startAlpha";");
                        }
                    }else if (
Entry == "endAlpha"){// End alpha
                        
if((float)Value &gt1.0){
llOwnerSay("/me &gt;&gt; endAlpha ERROR; The values we can set for alpha = from 0.00 (invisible) to 1.00 (visible); You tried to input value "+Value);
                        }else if((float)
Value &lt0.0){
llOwnerSay("/me &gt;&gt; endAlpha ERROR; The values we can set for alpha = from 0.00 (invisible) to 1.00 (visible); You tried to input value "+Value);
                        }else{
//we have a valid value, so we'll set it
                            
endAlpha = (float)Value;
                            if(
spam)llOwnerSay("/me float endAlpha = " + (string)endAlpha ";");
                        }
                    }else if (
Entry == "particleAge"){// Particle age
                        
if((float)Value &gt30.0){
llOwnerSay("/me &gt;&gt; particleAge ERROR; Maximum age for particle age is 30 seconds; You tried to input value "+Value);
                        }else if((float)
Value &lt0.0){
llOwnerSay("/me &gt;&gt; particleAge ERROR; Minimum age for particle age is 0 seconds; You tried to input value "+Value);
                        }else{
//we have a valid value, so we'll set it
                            
particleAge = (float)Value;
                            if(
spam)llOwnerSay("/me float particleAge = " + (string)particleAge ";");
                        }
                    }else if (
Entry == "systemAge"){// System Age
                        
if((float)Value &lt0.0){
llOwnerSay("/me &gt;&gt; systemLife ERROR; Minimum system age is 0 seconds(set to 0 for endless/infinite); You tried to input value "+Value);
                        }else{
systemAge = (float)Value;
                            if(
spam)llOwnerSay("/me float systemAge = " + (string)systemAge ";");
                        }
                    }else if (
Entry == "burstRate"){// Burst Rate
                        
if((float)Value &lt0.0){
llOwnerSay("/me &gt;&gt; burstRate ERROR; Minimum burst rate is 0 seconds(set to 0 for fastest possible emission rate); You tried to input value "+Value);
                        }else{
burstRate = (float)Value;
                            if(
spam)llOwnerSay("/me float burstRate = " + (string)burstRate ";");
                        }
                    }else if (
Entry == "burstCount"){// Burst Count
                        
if((float)Value &gt1000){
llOwnerSay("/me &gt;&gt; burstCount ERROR; Setting burst count too high can result in lag material, its not suggested you go much over 1000; You tried to input value "+Value+" (tip; small clouds etc 100 to 200)");
                        }else{
burstCount = (integer)Value;
                            if(
spam)llOwnerSay("/me integer burstCount = " + (string)burstCount ";");
                        }
                    }else if (
Entry == "radius"){// Radius
                        
if((float)Value &lt0.0 || (float)Value &gt50.0){
llOwnerSay("/me &gt;&gt; radius ERROR; Maximum radius is believed to be 50m; You tried to input value "+Value);
                        }else{
radius = (float)Value;
                            if(
spam)llOwnerSay("/me float radius = " + (string)radius ";");
                        }
                    }else if (
Entry == "angleStart"){// Angle Start
                        
angleStart = (float)Value;
                        if(
spam)llOwnerSay("/me float angleStart = " Value ";");
                    }else if (
Entry == "angleEnd"){// Angle End
                        
angleEnd = (float)Value;
                        if(
spam)llOwnerSay("/me float angleEnd = " Value ";");
 
                    }else if (
Entry == "minSpeed"){// Min Speed
                        
minSpeed = (float)Value;
                        if(
spam)llOwnerSay("/me float minSpeed = " Value ";");
                    }else if (
Entry == "maxSpeed"){// Max Speed
                        
maxSpeed = (float)Value;
                        if(
spam)llOwnerSay("/me float maxSpeed = " Value ";");
 
                    }else if (
Entry == "omega"){// Omega
                        
omega = (vector)Value;
                        if(
spam)llOwnerSay("/me vector omega = " Value ";");
 
                    }else if (
Entry == "acceleration"){// Accel / Push
                        
acceleration = (vector)Value;
                        if(
spam)llOwnerSay("/me vector acceleration = " Value ";");
                    }
// TRUE / FALSE conditions
                    
else if (Entry == "glowEffect"){// Glow Effect
                        
if(Value == "TRUE"){glowEffect TRUE;
                        }else if(
Value == "FALSE"){glowEffect FALSE;
                        }else{
llOwnerSay("/me &gt;&gt; glowEffect ERROR; You can only have a TRUE or FALSE setting; You tried to input value "+Value);
                        }
                        if(
spam)llOwnerSay("/me integer glowEffect = " Value ";");
                    }else if (
Entry == "colorInterpolation"){// Color interpol
                        
if(Value == "TRUE"){colorInterpolation TRUE;
                        }else if(
Value == "FALSE"){colorInterpolation FALSE;
                        }else{
llOwnerSay("/me &gt;&gt; colorInterpolation ERROR; You can only have a TRUE or FALSE setting; You tried to input value "+Value);
                        }
                        if(
spam)llOwnerSay("/me integer colorInterpolation = " Value ";");
                    }else if (
Entry == "sizeInterpolation"){// Size interpol
                        
if(Value == "TRUE"){sizeInterpolation TRUE;
                        }else if(
Value == "FALSE"){sizeInterpolation FALSE;
                        }else{
llOwnerSay("/me &gt;&gt; sizeInterpolation ERROR; You can only have a TRUE or FALSE setting; You tried to input value "+Value);
                        }
                        if(
spam)llOwnerSay("/me integer sizeInterpolation = " Value ";");
                    }else if (
Entry == "followVelocity"){// Follow Vel
                        
if(Value == "TRUE"){followVelocity TRUE;
                        }else if(
Value == "FALSE"){followVelocity FALSE;
                        }else{
llOwnerSay("/me &gt;&gt; followVelocity ERROR; You can only have a TRUE or FALSE setting; You tried to input value "+Value);
                        }
                        if(
spam)llOwnerSay("/me integer followVelocity = " Value ";");
                    }else if (
Entry == "windEffect"){// Wind effect
                        
if(Value == "TRUE"){windEffect TRUE;
                        }else if(
Value == "FALSE"){windEffect FALSE;
                        }else{
llOwnerSay("/me &gt;&gt; windEffect ERROR; You can only have a TRUE or FALSE setting; You tried to input value "+Value);
                        }
                        if(
spam)llOwnerSay("/me integer windEffect = " Value ";");
                    }else if (
Entry == "bounceEffect"){// Bounce effect
                        
if(Value == "TRUE"){bounceEffect TRUE;
                        }else if(
Value == "FALSE"){bounceEffect FALSE;
                        }else{
llOwnerSay("/me &gt;&gt; bounceEffect ERROR; You can only have a TRUE or FALSE setting; You tried to input value "+Value);
                        }
                        if(
spam)llOwnerSay("/me integer bounceEffect = " Value ";");
                    }else if (
Entry == "followSource"){// Follow source
                        
if(Value == "TRUE"){followSource TRUE;
                        }else if(
Value == "FALSE"){followSource FALSE;
                        }else{
llOwnerSay("/me &gt;&gt; followSource ERROR; You can only have a TRUE or FALSE setting; You tried to input value "+Value);
                        }
                        if(
spam)llOwnerSay("/me integer followSource = " Value ";");
                    }else if (
Entry == "pattern"){// Pattern
                        
if(Value == "PSYS_SRC_PATTERN_EXPLODE"){pattern 0x02;}
                        else if(
Value == "PSYS_SRC_PATTERN_DROP"){pattern 0x01;}
                        else if(
Value == "PSYS_SRC_PATTERN_ANGLE_CONE"){pattern 0x08;}
                        else if(
Value == "PSYS_SRC_PATTERN_ANGLE"){pattern 0x04;}
                        else if(
Value == "PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY"){pattern 0x10;}
                        else{
llOwnerSay("/me &gt;&gt; pattern ERROR; You can only have the following parameters
PSYS_SRC_PATTERN_EXPLODE
PSYS_SRC_PATTERN_DROP
PSYS_SRC_PATTERN_ANGLE_CONE
PSYS_SRC_PATTERN_ANGLE
PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
You tried to input value "
+Value+".");
                        }
                        if(
spam)llOwnerSay("/me integer pattern = " Value ";");
                    }
                    
//Uncomment the following selections once they've been implemented
                    //else if (Entry == "randomVelocity"){
                        //if(Value == "TRUE"){randomVelocity = TRUE;
                        //}else{randomVelocity = FALSE;}
                        //if(spam)llOwnerSay("/me integer randomVelocity = " + Value + ";");
                    //}
                    //else if (Entry == "randomAcceleration"){
                        //if(Value == "TRUE"){randomAcceleration = TRUE;
                        //}else{randomAcceleration = FALSE;}
                        //if(spam)llOwnerSay("/me integer randomAcceleration = " + Value + ";");
                    //}
                    //else if (Entry == "particleTrails"){
                        //if(Value == "TRUE"){particleTrails = TRUE;
                        //}else{particleTrails = FALSE;}
                        //if(spam)llOwnerSay("/me integer particleTrails = " + Value + ";");
                    //}
                    // Other effects
                    
else if (Entry == "loopSound"){
                        if(
Value == "TRUE"){loopSound TRUE;
                        }else if(
Value == "FALSE"){loopSound FALSE;
                        }else{
llOwnerSay("/me &gt;&gt; loopSound ERROR; You can only have a TRUE or FALSE setting; You tried to input value "+Value);
                        }
                        if(
spam)llOwnerSay("/me integer loopSound = " Value ";");
                    }else if (
Entry == "soundEffect"){
                        
integer result isKey(Value);
                        if(
result){soundEffect = (key)Value;
                            if(
spam)llOwnerSay("/me key soundEffect = \"" Value "\";");
                        }else{
llOwnerSay("/me &gt;&gt; soundEffect ERROR; You did not enter a valid sound key; You tried to input "+Value);
                        }
                    }else if (
Entry == "soundLooped"){
                        
integer result isKey(Value);
                        if(
result){soundLooped = (key)Value;
                            if(
spam)llOwnerSay("/me key soundLooped = \"" Value "\";");
                        }else{
llOwnerSay("/me &gt;&gt; soundLooped ERROR; You did not enter a valid sound key; You tried to input "+Value);
                        }
                    }else if (
Entry == "soundVolume"){
                        if((float)
Value &gt1.0){
llOwnerSay("/me &gt;&gt; soundVolume ERROR; The values we can set for volume = from 0.00 (silent) to 1.00 (loud); You tried to input value "+Value);
                        }else if((float)
Value &lt0.0){
llOwnerSay("/me &gt;&gt; soundVolume ERROR; The values we can set for volume = from 0.00 (silent) to 1.00 (loud); You tried to input value "+Value);
                        }else{
soundVolume = (float)Value;
                            if(
spam)llOwnerSay("/me float soundVolume = " + (string)soundVolume ";");
                        }
                    }
                    
// Example of reading a list(ed) entry
                    // listExample = red,5,TRUE,NULL_KEY
                    //else if (Entry == "listExample"){
                        //list l = llCSV2List(Value);
                        //integer i;
                        //for (i = 0; i &lt; llGetListLength(l); i++){
                            //if(spam)llOwnerSay("list " + (string)i + " = " + llList2String(l, i));
                        //}
                    //}
                
}
                ++
nLine;
                
queryID llGetNotecardLine(NotecardnLine);
            }else{
// all done.. reset our particle params with our new settings
                
if(spam)llOwnerSay("/me //End");
                
StopEffects();
                
Particles();
                
llTriggerSound(soundEffect,soundVolume);
                if(
loopSound)llLoopSound(soundLooped,soundVolume);
                
llOwnerSay("/me &gt;&gt; New particle parameters set;");
            }
       }
   }
//
    
changed(integer change){
        if(
change &ampCHANGED_OWNER){llResetScript();
        }
        if(
change &ampCHANGED_INVENTORY){
            
Load();//we reload inventory menu list to show new changes
            
if(!UpdateOnChange) return;
            
dList InventoryList();//update our list
            
if(llListFindList(dList,[Notecard])!=-1){//check our notecard is still in there, prevent error if deleting
                
ReadNotecard(Notecard);//notecard found, read it
            
}else{//we didnt find the notecard that was last set, maybe we changed it's name
                
llOwnerSay("/me &gt;&gt; INVUpdating failed; Parameters have not been changed; \""+Notecard+"\" was not found.
                (Notecard deleted or name of the notecard has changed)"
);
            }
        }
    }
//

Print this item

Forum stats
Latest posts
Topic Date, time  Author Last Sender Forum
  Ultimate Viewer Project 3 hours ago Saeki Amae Huggypie Tools
  Board Rules Full 4 hours ago Optimus Prime Reddress STEP 1: FORUM...
  Ultimate Ripping Tool for... 6 hours ago Saeki Amae Huggypie Tools (for XM...
  Ebody Clasic and Curvy Yesterday, 18:47 ZeroThe10th karlinha ruby ASSORTED ITEM...
  Tool For MeshesSL Glitche... Yesterday, 13:40 Lagertha Huggypie Tools (for XM...
  Message from Linden Lab w... 05-03, 20:48 Chakall Lagertha Viewers & Cop...
  [split] Maitreya Lara X d... 05-02, 19:13 Juliaju Lagertha Dev Kits
  Maitreya Bootleg Maitreya... 05-02, 14:07 quander arielangelx Dev-Kits
  Hello 04-27, 19:12 rainsong Lagertha STEP 2: INTRO...
  Membership Guidelines and... 04-24, 19:50 VaNiTy Lagertha STEP 1: FORUM...
  [split] buying and sellin... 04-24, 19:48 Zuappatore Lagertha Avatars
Most views
  ShoopedStorm ... 1199947
  Firestorm Pro... 650566
  DarkStorm v3.... 480865
  DarkStorm v2.... 455630
  SolarStorm wi... 450590
Most reputations
Summer 4963
ZeroThe10th 3294
VaNiTy 3117
Ap0110 2318
Lagertha 1550
Most replies
  ShoopedStorm ... 885
  Firestorm Pro... 718
  Board Rules F... 580
  SolarStorm wi... 516
  DarkStorm 3.1... 405
Top posters
Optimus Prime 6211
Summer 2878
Lagertha 2173
ZeroThe10th 2032
InigoMontoya 1637
Top thread posters
Summer 1765
ZeroThe10th 1180
VaNiTy 1134
Second Life 854
YoungMoney 805
Newest members
slimjunior86 Today
Vanvan Today
tmonae Today
KaslozaAgose Today
Terencebar Today

About Second Life Copybot

Second Life CopyBot Forum is a place where you can get items for Second Life and other vitual worlds for free. With our CopyBot viewers you can export and import any content from these virtual worlds and modify them in 3D software such as Blender, 3D studio Macx etc...