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

From Second Life Wiki
Jump to navigation Jump to search
(Added some basic scripts. Very very basic. Will tidy and annotetate later.)
m (little whoopsie fixed, sure there are more ;-))
Line 68: Line 68:
         do
         do
         {
         {
             key toucher = llDetectedKey(0);
             key toucher = llDetectedKey(count);
             if(llListFindList(visitors, [toucher]) == -1)
             if(llListFindList(visitors, [toucher]) == -1)
             {
             {

Revision as of 02:20, 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(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>