Jump to content

Enter Phantom pushed out


MadsCook
 Share

You are about to reply to a thread that has been inactive for 258 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

A script can certainly detect when an agent collides with a prim set llVolumeDetect(TRUE) and the script could then check if the agent had the correct group active (or check a list of permitted agents, instead of SL "group" membership), then finally do something to the agent, like try to push them away from the prim.

(If there's nobody else around to be inconvenienced, the prim could just go non-phantom and Havok will try to push out the intruder—sometimes to hilarious effect!)

None of this may be what's wanted, though, so a little context would help. For starters, there's nothing to prevent somebody from camming inside any prim, phantom or not, and happily sitting on any object with a sit target. What's more, they won't be detected as colliding with the prim if seated inside it.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

In addition to what Qie said, you can also have your "security prim" llTeleportAgentHome() the offending non-group avatar, but the best option to prevent unwanted people from being somewhere is to use parcel security settings, but that would require separating the area to be secured into a separate parcel, and that the area of interest is on ground level.

ETA: with respect to your other recent posts, I should also mention that while it might be possible to push someone so fast they fly through thin walls, It wouldn't be reliable. I wouldn't try to physically push someone out of an enclosed space (such as might be secured by a door).

Edited by Quistess Alpha
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

2 hours ago, Quistess Alpha said:

In addition to what Qie said, you can also have your "security prim" llTeleportAgentHome() the offending non-group avatar, but the best option to prevent unwanted people from being somewhere is to use parcel security settings, but that would require separating the area to be secured into a separate parcel, and that the area of interest is on ground level.

ETA: with respect to your other recent posts, I should also mention that while it might be possible to push someone so fast they fly through thin walls, It wouldn't be reliable. I wouldn't try to physically push someone out of an enclosed space (such as might be secured by a door).

 

8 hours ago, Qie Niangao said:

A script can certainly detect when an agent collides with a prim set llVolumeDetect(TRUE) and the script could then check if the agent had the correct group active (or check a list of permitted agents, instead of SL "group" membership), then finally do something to the agent, like try to push them away from the prim.

(If there's nobody else around to be inconvenienced, the prim could just go non-phantom and Havok will try to push out the intruder—sometimes to hilarious effect!)

None of this may be what's wanted, though, so a little context would help. For starters, there's nothing to prevent somebody from camming inside any prim, phantom or not, and happily sitting on any object with a sit target. What's more, they won't be detected as colliding with the prim if seated inside it.

Thank you for valuable input! 🙂

The place is to keep someone out of a building And havea phantom prim on the uper two level but not on the ground floor.

Maybe TP someone home is a better option. Where do i start to script something like that? I would like people that are member in a group (The group do not need to be the active) to stay. all others to be TP home. 🙂

I am new to scripts so i might ask very simple questions.

Link to comment
Share on other sites

If there's anything to sit on in those upper levels, it may be best to abandon prim collision-based detection. That changes the problem to that commonly addressed with "security" systems. (There may be a public domain open source script for that, but I'm useless for finding those.) The general outline would be to run a timer that calls llGetAgentList on the parcel, filter those testing if they're not allowed in the forbidden area, and whether they are in the forbidden area by comparing the area's geometry with the agents' OBJECT_POS returned by llGetObjectDetails. The ones that pass all those criteria are intruding and need to be warned and then zapped. The zapping part might use llEjectFromLand,  slightly gentler than llTeleportAgentHome.

A real security system might also manage the land ban list so the intruders will stay out, but the objective here is just to keep them in the permitted zone, not ban them altogether.

Now, how to tell which agents are "not allowed"? The standard, easy way to do it is using llSameGroup to compare the agent's active group with the scripted object's own group. It's a little more work to check groups other than the one of the script's object, if necessary, but I don't think there's a strictly LSL-based way to test the agent's membership in a group other than the active one. If the group isn't too large one can check if they're on a list of all individuals allowed, where that list might be populated manually or by bot. To test non-active membership in really large groups the script might check with a bot in real time.

I wish there were an LSL function to test non-active group membership but as far as I know it still doesn't exist.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 258 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...