Difference between revisions of "LlEjectFromLand"
Jump to navigation
Jump to search
m |
|||
(19 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
{{LSL_Function | {{LSL_Function | ||
|inject-2={{Issues/SVC-2516}}{{LSL_Function/avatar|avatar|sim=*}}{{LSL Function/security|avatar}} | |||
|func_id=213|func_sleep=0.0|func_energy=10.0 | |func_id=213|func_sleep=0.0|func_energy=10.0 | ||
|func=llEjectFromLand|p1_type=key|p1_name= | |func=llEjectFromLand|p1_type=key|p1_name=avatar | ||
|func_desc=Ejects {{LSLP|avatar}} from the parcel. | |||
|func_footnote | |func_footnote | ||
|caveats | |caveats | ||
|constants | |constants | ||
|examples= | |examples= | ||
< | <source lang="lsl2">// Here a script done by shenanigan oh | ||
//It's a easy script that I came up with. When I worked for a carnage I put this script in a computer that was | //It's a easy script that I came up with. When I worked for a carnage I put this script in a computer that was | ||
//attached to me. The carnage it self was a pvp sims so it was alot easier and fast to eject some this way | |||
//then running after them and clicking on them. The way this work is by trying eject and half type plays name. | |||
//Example: /1 eject shenan | |||
//Warning if you type someone name in short be | //Warning if you type someone name in short be careful of other plays with same name! | ||
string msg; | string msg; | ||
string name; | string name; | ||
Line 26: | Line 27: | ||
state_entry() | state_entry() | ||
{ | { | ||
llListen(1,"",llGetOwner(),""); | llListen(1, "", llGetOwner(), ""); | ||
llListen(0,"",llGetOwner(),""); | llListen(0, "", llGetOwner(), ""); | ||
} | } | ||
listen(integer n, string m, key k, string msg) | listen(integer n, string m, key k, string msg) | ||
{ | |||
if (llGetSubString(msg, 0, 5) == "eject ") | |||
{ | |||
name = llToLower(llStringTrim(llDeleteSubString(msg, 0, 5), STRING_TRIM)); | |||
llSensor("", "", AGENT, 96, PI); | |||
llSensor("", | |||
} | } | ||
} | } | ||
sensor(integer n) | sensor(integer n) | ||
{ | { | ||
integer i; | integer i = 0; | ||
for ( | for (;i<n;++i) | ||
{ | { | ||
if (llOverMyLand(llDetectedKey(i))) | |||
if (llSubStringIndex(llToLower(llDetectedName(i)),name) | { | ||
if (~llSubStringIndex(llToLower(llDetectedName(i)), name)) | |||
{ | |||
llOwnerSay("ejecting " + llDetectedName(i)); | |||
llEjectFromLand(llDetectedKey(i)); | |||
} | |||
} | |||
} | } | ||
} | } | ||
no_sensor() | |||
no_sensor() { | { | ||
llOwnerSay("Avatar not found."); | |||
} | } | ||
} | }</source> | ||
</ | |||
|helpers | |helpers | ||
|also_functions | |also_functions | ||
Line 66: | Line 66: | ||
|also_articles | |also_articles | ||
|notes | |notes | ||
|cat1=Security | |cat1=Security | ||
|cat2 | |cat2=Parcel | ||
|cat3 | |cat3 | ||
|cat4 | |cat4 | ||
|history={{LSL Added|0.6.0|remote=http://secondlife.wikia.com/wiki/Version_0.6.0}} | |||
}} | }} |
Latest revision as of 01:18, 22 January 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: llEjectFromLand( key avatar );0.0 | Forced Delay |
10.0 | Energy |
Ejects avatar from the parcel.
• key | avatar | – | avatar UUID that is in the same region |
Generally, the object owner must also be the land owner but there is an exception for land deeded to a group for group members with the "Eject and freeze Residents on parcels" ability. See #Ownership Limitations for details.
Specification
Ownership Limitations
- If the land under the object is owned by an individual, the script must be owned by the same individual.
- If the land under the object is deeded to a group the object will need to satisfy one of the following:
- The object is deeded to the same group.
- The object owner must have "Eject and freeze Residents on parcels" ability in the group and be connected to the sim[1].
Examples
// Here a script done by shenanigan oh
//It's a easy script that I came up with. When I worked for a carnage I put this script in a computer that was
//attached to me. The carnage it self was a pvp sims so it was alot easier and fast to eject some this way
//then running after them and clicking on them. The way this work is by trying eject and half type plays name.
//Example: /1 eject shenan
//Warning if you type someone name in short be careful of other plays with same name!
string msg;
string name;
default
{
on_rez(integer n)
{
llResetScript();
}
state_entry()
{
llListen(1, "", llGetOwner(), "");
llListen(0, "", llGetOwner(), "");
}
listen(integer n, string m, key k, string msg)
{
if (llGetSubString(msg, 0, 5) == "eject ")
{
name = llToLower(llStringTrim(llDeleteSubString(msg, 0, 5), STRING_TRIM));
llSensor("", "", AGENT, 96, PI);
}
}
sensor(integer n)
{
integer i = 0;
for (;i<n;++i)
{
if (llOverMyLand(llDetectedKey(i)))
{
if (~llSubStringIndex(llToLower(llDetectedName(i)), name))
{
llOwnerSay("ejecting " + llDetectedName(i));
llEjectFromLand(llDetectedKey(i));
}
}
}
}
no_sensor()
{
llOwnerSay("Avatar not found.");
}
}