User:Fred Gandt/Scripts

From Second Life Wiki
< User:Fred Gandt
Revision as of 02:34, 25 January 2010 by Fred Gandt (talk | contribs) (added toc and targets)
Jump to navigation Jump to search

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(count);
           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>