LlAddToLandPassList: Difference between revisions

From Second Life Wiki
Jump to navigation Jump to search
include the maximum value of hours in the caveat section
mNo edit summary
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{LSL_Function/avatar|avatar}}{{LSL_Function
{{LSL_Function
|inject-2={{LSL_Function/avatar|avatar}}
|func=llAddToLandPassList
|func=llAddToLandPassList
|sort=AddToLandPassList
|sort=AddToLandPassList
Line 5: Line 6:
|p1_type=key|p1_name=avatar
|p1_type=key|p1_name=avatar
|p2_type=float|p2_name=hours
|p2_type=float|p2_name=hours
|func_desc=Add '''avatar''' to the land pass list for '''hours''', or indefinitely if '''hours''' is zero.
|p2_desc=range {{Interval|lte=144.0|gte=0.0|center=hours}}
|p2_hover=range {{Interval/Hover|lte=144.0|gte=0.0|center=hours}}
|func_desc=Add {{LSLP|avatar}} to the land pass list for {{LSLP|hours}}, or indefinitely if {{LSLP|hours}} is zero.
|return_text
|return_text
|spec
|spec
|caveats=* The maximum usable value for '''hours''' is 144.  Any value greater than 144 will be silently reduced to 144.
|caveats=* The maximum usable value for {{LSLP|hours}} is 144.  Any value greater than 144 will be silently reduced to 144.
|examples=<lsl>// This is not a complete solution, requires full avatar names to work - even for unbanning someone!
|examples=<source lang="lsl2">// This is not a complete solution, requires full avatar names to work - even for unbanning someone!
// This is meant only as an example of the land ban and pass management functions.
// This is meant only as an example of the land ban and pass management functions.
// free to copy, use, modify, distribute - just don't ask me to debug your modified code. ;-)
// free to copy, use, modify, distribute - just don't ask me to debug your modified code. ;-)
Line 96: Line 99:
         command = "";
         command = "";
     }
     }
}</lsl>
}</source>
|helpers
|helpers
|related
|related

Latest revision as of 23:10, 21 January 2015

Summary

Function: llAddToLandPassList( key avatar, float hours );
0.1 Forced Delay
10.0 Energy

Add avatar to the land pass list for hours, or indefinitely if hours is zero.

• key avatar avatar UUID
• float hours range [0.0, 144.0]

Caveats

  • This function causes the script to sleep for 0.1 seconds.
  • The maximum usable value for hours is 144. Any value greater than 144 will be silently reduced to 144.

Examples

// This is not a complete solution, requires full avatar names to work - even for unbanning someone!
// This is meant only as an example of the land ban and pass management functions.
// free to copy, use, modify, distribute - just don't ask me to debug your modified code. ;-)
// 
// Commands are:
//   /5 ban:full_avatar_name
//   /5 tempban:full_avatar_name
//   /5 unban:full_avatar_name
//   /5 pass:full_avatar_name
//   /5 unpass:full_avatar_name
//   /5 clearban
//   /5 clearpass

string command;

default
{
    state_entry()
    {
        llListen(5, "", llGetOwner(), "");
    }
    
    on_rez(integer param)
    {
        llResetScript();
    }

    listen(integer chan, string name, key id, string message)
    {
        if (command != "")
        {
            llOwnerSay("Sorry, still processing last command, try again in a second.");
        }
        
        list args = llParseString2List(message,[":"],[]);
        command = llToLower(llList2String(args,0));
        
        if (command == "clearbans")
        {
            llResetLandBanList();
        }
        if (command == "clearpass")
        {
            llResetLandPassList();
        }
        else
        {
            llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI);
        }
    }
    
    no_sensor()
    {
        command = "";
    }
    
    sensor(integer num)
    {
        integer i;
        for (i=0; i< num; ++i)
        {
            if (command == "ban")
            {
                // Ban indefinetely 
                llAddToLandBanList(llDetectedKey(i),0.0);
            }
            if (command == "tempban")
            {
                // Ban for 1 hour.
                llAddToLandBanList(llDetectedKey(i),1.0);
            }
            if (command == "unban")
            {
                llRemoveFromLandBanList(llDetectedKey(i));
            }
            if (command == "pass")
            {
                // Add to land pass list for 1 hour
                llAddToLandPassList(llDetectedKey(i),1.0);
            }
            if (command == "unpass")
            {
                llRemoveFromLandPassList(llDetectedKey(i));
            }
        }
        command = "";
    }
}

Deep Notes

Footnotes

  1. ^ The ranges in this article are written in Interval Notation.

Signature

function void llAddToLandPassList( key avatar, float hours );