User:Criz Collins/Scripts
< User:Criz Collins
Jump to navigation
Jump to search
Revision as of 04:39, 14 April 2008 by Criz Collins (talk | contribs) (New page: = Criz Collins Scripts = Here is the code that Criz Collins has submitted to the wiki - he likes to keep it all together so he can find it when he loses it in his inv...)
Criz Collins Scripts
Here is the code that Criz Collins has submitted to the wiki - he likes to keep it all together so he can find it when he loses it in his inventory. ;D
Give InvItem every n hours
This script will give an inventory item on touch only every n hours, even if somebody touches the object more than once.
<lsl> // Idea and written by Criz Collins // Don't sell this FREE script!!!
string giveitem = "name of item in objects inventory"; float giveevery = 24; // hours!
/////////////////////////////////////////////
list visitors; list lastsent; integer n;
default {
on_rez( integer param ) { llResetScript(); }
changed(integer change) { if (change & CHANGED_INVENTORY) { llResetScript(); } } touch_start(integer total_number) { for (n=0; n<total_number; n++) { integer giveallowed = 0; integer index = llListFindList( visitors, [ llDetectedKey(n) ] ); if (index == -1) { visitors = visitors + [ llDetectedKey(n) ]; lastsent = lastsent + [(integer)llGetUnixTime()]; giveallowed = 1; } else { if (llList2Integer(lastsent, index) <= ((integer)llGetUnixTime() - (giveevery * 60 * 60))) { list replacer = [(integer)llGetUnixTime()]; list newlastsent = llListReplaceList(lastsent, replacer, index, index); lastsent = []; lastsent = newlastsent; giveallowed = 1; } else { giveallowed = 0; } } if (giveallowed == 1) { llGiveInventory(llDetectedKey(n), giveitem); } } }
} </lsl>