Difference between revisions of "LlResetLandPassList"
Jump to navigation
Jump to search
m (<lsl> tag to <source>) |
|||
(5 intermediate revisions by 4 users not shown) | |||
Line 10: | Line 10: | ||
|spec | |spec | ||
|caveats | |caveats | ||
|examples | |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. | |||
// 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 = ""; | |||
} | |||
} | |||
</source> | |||
|helpers | |helpers | ||
|also_header | |also_header | ||
|also_functions={{LSL DefineRow||[[llResetLandBanList]]|}} | |also_functions= | ||
{{LSL DefineRow||[[llAddToLandBanList]]|}} | |||
{{LSL DefineRow||[[llAddToLandPassList]]|}} | |||
{{LSL DefineRow||[[llRemoveFromLandBanList]]|}} | |||
{{LSL DefineRow||[[llRemoveFromLandPassList]]|}} | |||
{{LSL DefineRow||[[llResetLandBanList]]|}} | |||
|also_tests | |also_tests | ||
|also_events | |also_events | ||
Line 26: | Line 121: | ||
|negative_index | |negative_index | ||
|cat1=Security | |cat1=Security | ||
|cat2 | |cat2=Parcel | ||
|cat3 | |cat3 | ||
|cat4 | |cat4 |
Latest revision as of 14:29, 22 January 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: llResetLandPassList( );322 | Function ID |
0.1 | Forced Delay |
10.0 | Energy |
Removes all residents from the land access/pass list.
Caveats
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 = "";
}
}