llEjectFromLand also ejects objects
tracked
Leo Mercury
When a person sits on an objects which he/she owns and the person gets ejected by the llEjectFromLand function, it will also eject the object from the land and sends it back to the "lost and found" folder. This happens several times with an professional scripted skybox security system. I suggest to have a look at this function and make sure the objects won't be removed again.
Log In
Maestro Linden
marked this post as
tracked
Maestro Linden
Actually, testing again, I'm able to reproduce the seated object return on ejection after all. As Coyote Enthusiast said, the ejected agent's seat is returned to their lost & found folder when they are ejected by _either_ llEjectFromLand or the 'Eject' function in the viewer UI.
I agree that 'eject' via LSL or the viewer UI should not also return any objects. the object the ejected agent is sitting on (if they are the owner). If the parcel manager wants to return any objects separately, they can do so via the 'Return' UI or via llReturnObjectsByOwner.
Coyote Enthusiast
I was able to reproduce this issue on Fractal as a estate manager + group member. Auto-return is not enabled, and the object was owned by me but under the group tag.
The script I used was:
default
{
state_entry()
{
llSetText("Touch to be ejected", <1,1,1>, 1);
}
touch_start(integer total_number)
{
llEjectFromLand(llDetectedKey(0));
}
}
Exact setup:
- Estate manager
- Group land member
- Return objects permission in land group
- Must own the object that is being sat upon
- Parcel at <0,0,0> is owned by different group than parcel that the cube is on - (This doesn't seem to be a factor, tested on Quiddity which is one big parcel and same issue was reproduced)
This isn't specifically a scripting bug either. This applies to the "Eject Avatar" option that parcel / estate managers have access to.
Doesn't appear to be auto-return, as "By parcel auto-return" is omitted from the return message, but also not "going off word" either:
Message from Second Life:
Your object 'Object' has been returned to your inventory Lost and Found folder by Domyoji Enterprises from parcel 'Quiddity - Thac'zil d'lil Xar'zith Valshare' at Quiddity 127, 126.
This tells me that it is being returned by the generic return object function, which makes me think that it might be intentional to return people's vehicles should they enter an area they aren't supposed to be in, then get ejected?
Maestro Linden
marked this post as
needs info
Maestro Linden
Hi Leo Mercury, I'm not able to reproduce this in general. Here's what I tried:
- Parcel owner: Rez a box and add the test script shown below to it
- Visiting avatar (who is not the parcel owner): rez a box in the parcel and sit on it
- Visiting avatar: touch the test script
- Observe that the visiting avatar is teleported to an off-parcel location, but that their rezzed box remains visible
default
{
on_rez(integer r)
{
llResetScript();
}
state_entry()
{
llSetObjectName("llEjectFromLand test");
key parcelOwner = llList2Key(llGetParcelDetails(llGetPos(), [PARCEL_DETAILS_OWNER]), 0);
if(llGetOwner() == parcelOwner)
{
string msg = "llEjectFromLand test: Touch Me to get ejected";
llSay(0, msg);
llSetText(msg, <1,1,1>, 1);
}
else
{
llSay(0, "Warning! This script is not owned by the parcel owner. Expect llEjectFromLand() to fail,"
+ " unless the parcel is group owned and script owner is present and has ejection ability.");
}
}
touch_start(integer total_number)
{
llSay(0, "Ejecting " + llDetectedName(0));
llSleep(1);
llEjectFromLand(llDetectedKey(0));
}
}
That said, I believe the behavior you observed can be explained by the parcel object auto return feature: https://community.secondlife.com/knowledgebase/english/managing-your-parcel-r49/#About_auto_return__db48ec
If an object is being selected or sat upon, the parcel auto return function will not return the object, even if the object has been in the parcel for longer than the return timer. However, the moment such an object is no longer being selected or sat upon, the auto return function will kick in and return the object. This would include cases in which an agent is no longer sitting on the object because they were ejected from the parcel.
With that in mind, I have some questions:
- What is the parcel auto return time set to on your test parcel?
- Was the sat-upon object present in the parcel for longer than the auto-return time?
Leo Mercury
Maestro Linden We did test it right now with your script and it also returned the object which has been rezzed and the avatar who rezzed the object was sitting on it.
There isn't a auto return time set.
I will explain it.
We are using a special experience based skybox system. All vistors of our region can teleport into them and use them for free. After 30 minutes an AFK warner becomes active. If you don't react on it or you click the wrong button the included security system will eject you from the land.
Everything is working great unless the avatar who rezzed everything in the skyboxes is using one of the objects inside it and clicks the wrong button.
The system will eject the avatar and returns the object then.
For your information. The land is group owned. Also the whole skybox system is deeded to the same group. This is necessary because of the experience.
Only the objects in the skyboxes aren't deeded. But the owner of the objects is also the owner of the group.
Edit:
We also checked it on a parcel which is owned by an avatar. The owner of the parcel did rezz a box with the script and also the object was owned by this avatar. The owner did sit on the obect an clicked the box.
The box ejected the owner of the parcel and returned the object!!
So there must be a massive problem with the llEjectFromLand fuction
Maestro Linden
Leo Mercury: Okay, can you please share an example SLURL where my test script is rezzed (and owned by the parcel owner), so that llEjectFromLand is allowed), so I can observe this bug? It's not happening on my own test parcels.
Maestro Linden
I note that it's also possible that the skybox system is calling a function like https://wiki.secondlife.com/wiki/LlReturnObjectsByOwner when an agent is ejected or otherwise leaves the parcel.
Leo Mercury
Maestro Linden this one for example http://maps.secondlife.com/secondlife/Free/137/42/21 but it also happened on mainland.
Leo Mercury
Maestro Linden The script doesn't include the LlReturnObjects functions.
Maestro Linden
Leo Mercury: Hm, I had my alt visit that location in 'Free' and stay in the region. I didn't receive any AFK warnings from objects or get ejected, after about 42 minutes in the region. Could you please rez the test script I included on some parcel where you've observed this issue?