Difference between revisions of "User:Fred Gandt/Scripts"

From Second Life Wiki
Jump to navigation Jump to search
m (Just creating a page for later.)
 
(Added some basic scripts. Very very basic. Will tidy and annotetate later.)
Line 1: Line 1:
Content.
'''All the below scripts are basic and to be cleaned up and annotetated later (next few days prolly)'''
 
----
 
'''Basic Light Switch'''
 
<lsl>integer on;
 
vector color = <1.0,1.0,1.0>; // RGB values
 
float intensity = 1.0; // 0.0 to 1.0 (1.0 = full brightness)
 
float radius = 20.0; // 0.1 to 20.0 (20.0 = full sphere)
 
float falloff = 0.01; // 0.01 to 2.0 (2.0 = least spread)
 
Switch()
{
    on = (!on);
    llSetPrimitiveParams([PRIM_POINT_LIGHT, on, color, intensity, radius, falloff]);
}
 
default
{
    touch_end(integer nd)
    {
        Switch();
    }
}</lsl>
 
'''Script that gives a set amount of L$ to whoever touches the object this script is in'''
 
<lsl>key owner;
 
integer perms;
 
integer count;
 
list visitors;
 
integer ammount = 1; // Change this figure to the required ammount to give away (e.g. 5). Then set running and drop in your prim.
 
default
{
    on_rez(integer param)
    {
        llResetScript();
    }
    changed(integer change)
    {
        if(change & CHANGED_OWNER)
        llResetScript();
    }
    state_entry()
    {
        owner = llGetOwner();
        llRequestPermissions(owner, PERMISSION_DEBIT);
    }
    run_time_permissions(integer perm)
    {
        if(perm & PERMISSION_DEBIT)
        perms = TRUE;
        else
        llRequestPermissions(owner, PERMISSION_DEBIT);
    }
    touch_end(integer nd)
    {
        do
        {
            key toucher = llDetectedKey(0);
            if(llListFindList(visitors, [toucher]) == -1)
            {
                if(perms)
                {
                    llGiveMoney(toucher, ammount);
                    visitors += toucher;
                }
            }
        }
        while((++count) < nd);
        count = 0;
    }
}</lsl>
 
'''Script to make the Mouselook button show at the bottom of your screen'''
 
<lsl>key owner;
 
default
{
    on_rez(integer param)
    {
        llResetScript();
    }
    state_entry()
    {
        owner = llGetOwner();
        llRequestPermissions(owner, PERMISSION_TAKE_CONTROLS);
    }
    run_time_permissions(integer perm)
    {
        if(perm & PERMISSION_TAKE_CONTROLS)
        llTakeControls(CONTROL_ML_LBUTTON, TRUE, FALSE);
        else
        llRequestPermissions(owner, PERMISSION_TAKE_CONTROLS);
    }
    control(key id, integer this, integer that)
    {
        // Do stuff when clicking the left mouse button while in mouselook. Like for guns etc.
    }
}</lsl>
 
'''Script that makes the object it is in float on water'''
 
<lsl>// Floating on water script
 
float offset = 0.0; // add the offset here
 
default
{
    on_rez(integer param)
    {
        float float_height = (llWater(ZERO_VECTOR) + offset);
        vector pos = llGetPos();
        llSetStatus(STATUS_PHYSICS, TRUE);
        llMoveToTarget(<pos.x, pos.y, float_height>, 0.5);
    }
}</lsl>
 
'''Very Basic Alpha (transparency) ON/OFF script'''
 
<lsl>integer on;
 
key owner;
 
string command = "switch"; // place command here to say. Same command will switch on and off.
 
integer channel = 1; // place channel to use here (must be a positive if an avatar is chatting on it)
 
Switch(integer i)
{
    llSetLinkAlpha(LINK_SET, ((float)i), ALL_SIDES);
}
 
default
{
    state_entry()
    {
        owner = llGetOwner();
        llListen(channel, "", owner, command);
    }
    touch_end(integer nd)
    {
        on = (!on);
        Switch(on);
    }
    listen(integer chan, string name, key id, string msg)
    {
        on = (!on);
        Switch(on);
    }
}</lsl>

Revision as of 00:58, 25 January 2010

All the below scripts are basic and to be cleaned up and annotetated later (next few days prolly)


Basic Light Switch

<lsl>integer on;

vector color = <1.0,1.0,1.0>; // RGB values

float intensity = 1.0; // 0.0 to 1.0 (1.0 = full brightness)

float radius = 20.0; // 0.1 to 20.0 (20.0 = full sphere)

float falloff = 0.01; // 0.01 to 2.0 (2.0 = least spread)

Switch() {

   on = (!on);
   llSetPrimitiveParams([PRIM_POINT_LIGHT, on, color, intensity, radius, falloff]);

}

default {

   touch_end(integer nd)
   {
       Switch();
   }

}</lsl>

Script that gives a set amount of L$ to whoever touches the object this script is in

<lsl>key owner;

integer perms;

integer count;

list visitors;

integer ammount = 1; // Change this figure to the required ammount to give away (e.g. 5). Then set running and drop in your prim.

default {

   on_rez(integer param)
   {
       llResetScript();
   }
   changed(integer change)
   {
       if(change & CHANGED_OWNER)
       llResetScript();
   }
   state_entry()
   {
       owner = llGetOwner();
       llRequestPermissions(owner, PERMISSION_DEBIT);
   }
   run_time_permissions(integer perm)
   {
       if(perm & PERMISSION_DEBIT)
       perms = TRUE;
       else
       llRequestPermissions(owner, PERMISSION_DEBIT);
   }
   touch_end(integer nd)
   {
       do
       {
           key toucher = llDetectedKey(0);
           if(llListFindList(visitors, [toucher]) == -1)
           {
               if(perms)
               {
                   llGiveMoney(toucher, ammount);
                   visitors += toucher;
               }
           }
       }
       while((++count) < nd);
       count = 0;
   }

}</lsl>

Script to make the Mouselook button show at the bottom of your screen

<lsl>key owner;

default {

   on_rez(integer param)
   {
       llResetScript();
   }
   state_entry()
   {
       owner = llGetOwner();
       llRequestPermissions(owner, PERMISSION_TAKE_CONTROLS);
   }
   run_time_permissions(integer perm)
   {
       if(perm & PERMISSION_TAKE_CONTROLS)
       llTakeControls(CONTROL_ML_LBUTTON, TRUE, FALSE);
       else
       llRequestPermissions(owner, PERMISSION_TAKE_CONTROLS);
   }
   control(key id, integer this, integer that)
   {
       // Do stuff when clicking the left mouse button while in mouselook. Like for guns etc.
   }

}</lsl>

Script that makes the object it is in float on water

<lsl>// Floating on water script

float offset = 0.0; // add the offset here

default {

   on_rez(integer param)
   {
       float float_height = (llWater(ZERO_VECTOR) + offset);
       vector pos = llGetPos();
       llSetStatus(STATUS_PHYSICS, TRUE);
       llMoveToTarget(<pos.x, pos.y, float_height>, 0.5);
   }

}</lsl>

Very Basic Alpha (transparency) ON/OFF script

<lsl>integer on;

key owner;

string command = "switch"; // place command here to say. Same command will switch on and off.

integer channel = 1; // place channel to use here (must be a positive if an avatar is chatting on it)

Switch(integer i) {

   llSetLinkAlpha(LINK_SET, ((float)i), ALL_SIDES);

}

default {

   state_entry()
   {
       owner = llGetOwner();
       llListen(channel, "", owner, command);
   }
   touch_end(integer nd)
   {
       on = (!on);
       Switch(on);
   }
   listen(integer chan, string name, key id, string msg)
   {
       on = (!on);
       Switch(on);
   }

}</lsl>