User:Fred Gandt/Scripts
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>