Give InvItem every n hours: Difference between revisions
Jump to navigation
Jump to search
Criz Collins (talk | contribs) No edit summary |
Criz Collins (talk | contribs) No edit summary |
||
| Line 65: | Line 65: | ||
} | } | ||
</lsl> | </lsl> | ||
[[User:Criz Collins|Criz Collins]] 11:14, 11 June 2008 (PDT) | |||
{{visl | |||
|Mentors=* | |||
|LSL=* | |||
}} | |||
{{skills | |||
|Builder=* | |||
|Scripter=* | |||
|}} | |||
{{ISO 639-3/cat-speaking/Volunteers|deu}} | |||
{{ISO 639-3/cat-speaking/Volunteers|eng}} | |||
{{ISO 639-3/cat-speaking/Volunteers|gml}} | |||
{{ISO 639-3/cat-speaking/Volunteers|gsg}} | |||
{{ISO 639-3/cat-speaking/Volunteers|nds}} | |||
{{ISO 639-3/cat-speaking|deu}} | |||
{{ISO 639-3/cat-speaking|eng}} | |||
{{ISO 639-3/cat-speaking|gml}} | |||
{{ISO 639-3/cat-speaking|gsg}} | |||
{{ISO 639-3/cat-speaking|nds}} | |||
{{visl | |||
|Greeters= | |||
|Mentors=* | |||
|Helpers= | |||
|Instructors= | |||
|Scribe= | |||
|Linguist= | |||
|Buddy=* | |||
|ApprenticeBuddy= | |||
|Coach= | |||
|OrientationCoach= | |||
|}} | |||
{{LSLC|Library|Give InvItem every n hours}} | {{LSLC|Library|Give InvItem every n hours}} | ||
Revision as of 11:14, 11 June 2008
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
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>
Criz Collins 11:14, 11 June 2008 (PDT)
Categories:
- LSL Mentors
- Builder
- Scripter
- German speaking Volunteers
- German speaking Residents
- English speaking Volunteers
- English speaking Residents
- Middle Low German speaking Volunteers
- Middle Low German speaking Residents
- German Sign Language speaking Volunteers
- German Sign Language speaking Residents
- Low German speaking Volunteers
- Low German speaking Residents
- LSL Library