User:Criz Collins/Scripts
< User:Criz Collins
Jump to navigation
Jump to search
Revision as of 10:57, 14 April 2008 by Strife Onizuka (talk | contribs) (Criz Collins Scripts moved to User: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>