Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string script; // script name to skip it while giving
- string hover_text = "test"; // hover text
- vector hover_color = <1.0,1.0,1.0>;
- string folder;
- float range = 5; // detection range, m
- float rate = 5; // seconds between scans , do nt d too often.
- list listav = [];
- integer max_avatars = 50;
- integer no_to_forget = 10;
- // Init procedure on state entry.
- init()
- {
- llSensorRepeat("", NULL_KEY, AGENT, range, PI, rate);
- llSetText(hover_text, hover_color, 1);
- script = llGetScriptName();
- folder = llGetObjectName();
- }
- give(key avatar)
- {
- list to_give;
- integer c=0;
- integer max=llGetInventoryNumber(INVENTORY_ALL);
- string this;
- for(c=0;c<max;c++)
- {
- this = llGetInventoryName(INVENTORY_ALL, c);
- if(this!=script)
- {
- to_give+=[this];
- }
- }
- llGiveInventoryList(avatar,folder,to_give);
- }
- default
- {
- state_entry()
- {
- init();
- }
- // resetting state on rez, just in case
- on_rez(integer start_param)
- {
- llResetScript();
- }
- // for every toucher in queue, give them content
- sensor(integer n)
- {
- integer count;
- integer i;
- for( i = 0; i < n; i++)
- {
- key avatar = llDetectedKey(i);
- count = llListFindList(listav,[avatar]);
- if (count == -1)
- {
- listav += avatar;
- give(llList2String(listav, i));
- }
- if(llGetListLength(listav) > max_avatars )
- listav = llDeleteSubList( listav, 0, no_to_forget );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement