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

From Second Life Wiki
Jump to navigation Jump to search
m (little whoopsie fixed, sure there are more ;-))
m (added toc and targets)
Line 1: Line 1:
{{RightToc|right;}}
'''All the below scripts are basic and to be cleaned up and annotetated later (next few days prolly)'''
'''All the below scripts are basic and to be cleaned up and annotetated later (next few days prolly)'''


----
----


'''Basic Light Switch'''
== Basic Light Switch ==


<lsl>integer on;
<lsl>integer on;
Line 29: Line 31:
}</lsl>
}</lsl>


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


<lsl>key owner;
<lsl>key owner;
Line 83: Line 85:
}</lsl>
}</lsl>


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


<lsl>key owner;
<lsl>key owner;
Line 111: Line 113:
}</lsl>
}</lsl>


'''Script that makes the object it is in float on water'''
== Script that makes the object it is in float on water ==


<lsl>// Floating on water script
<lsl>// Floating on water script
Line 128: Line 130:
}</lsl>
}</lsl>


'''Very Basic Alpha (transparency) ON/OFF script'''
== Very Basic Alpha (transparency) ON/OFF script ==


<lsl>integer on;
<lsl>integer on;

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