Jump to content

Vehicle Freezes When Vehicle Owner Is Off SIM


Dmitriy Gausman
 Share

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

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

Recommended Posts

I have an issue that is making me crazy. I have a cart that is meant to go around 9 SIMS. It is scripted to be used by those wearing the same group tag the cart is set to. Once seated, they get a horse, wear it, and off they go. In testing it out, the cart works perfectly. I can ride it all day without any problems. I then park the cart in a stall and leave it for others to use. If someone is out riding it and I leave the SIM (or the cart goes to a SIM I am not in), the cart freezes, usually when crossing into a parcel though not always this - it can happen mid parcel. If I return and they re-sit and wear the horses, it works.

I went through everything I could think of in the code and there was an instance of the horse and cart using llKey2Name. Seeing that that function is not happy if the owner is off sim, i removed them.

The land settings are fine. I have no different abilities than those who tried it as well. I searched as best as I could for some answers but was coming up blank. Does anyone have any ideas where I might look to find the cause of the freezing when others use the cart.

Thank you!

Dmitriy

Link to comment
Share on other sites

Is there only one script? Maybe a script in a child prim is the problem. Did you check all of the child prims for content? Is there a sensor functon for detecting when the owner was last seen? Many scripts check to see when the owner was last sensed and if the owner has not been sensed after a certain amount of time, excecute llDie(). They usually don't freeze the object, though. 

Link to comment
Share on other sites

This is a permissions issue.  If you have permission (through group roles) to rez objects on a parcel, then your script only shares those permissions when you're online. That is, the script can not take advantage of group role abilities unless you are logged in. So, if your cart has to rez anything and you are not present, the rezzer fails to fire. You ought to be able to beat the problem by setting the cart to share with the group, but you may have to actually deed it to the group.  I can't recall which at the moment.

Link to comment
Share on other sites

if it's not a permissions issue (and good chances that it is) then it could be the result of of code in your objects checking for information about the object owner that the region doesn't store when they aren't around.... like llKey2Name (there are others but that's the most common)

but it's more likely a permissions issue... the code is stupid and object entry might work while you are on but not while you are off unless the object is set the the group (or in some cases must be deeded to the group) of the parcel it is crossing... which is nearly impossible to deal with multiple group owned parcels. as a for instance.

there's also functions that can piggyback your permission while you're on in the same manner... llEjectFromLand and llAddToLandBanList are two notable ones that suffer from failures as soon as leave (unless shared with the land group)

Link to comment
Share on other sites

I don't think that crossing multiple parcel boundaries should be a problem.  The issue is giving the script permission to rez the attachments that each rider will need to wear.  I think that if the OP either sets the scripted cart to the group (or deeds it .... I still can't remember which), the rezzer should work.  After that, there's no more rezzing to deal with.  The rider just attaches the things and rides off into the sunset.

Link to comment
Share on other sites

Very interesting. The way the process works now is I initially rez the cart on SIM#1. All parcels on that sim are deeded to GROUP#1. Everyone must be a member of GROUP #1 to enter this SIM. We have a different group that is for roles, which for this example I will call "Cart Riders". The cart that I initially rez is set to the "Cart Riders" group, so that only those in that group can sit in the drivers seat and only those in that group can receive the horse. The horse is given to them and not rezzed. The rider wears the horse once seated and can use the same horse repeatedly after they get that first horse. They leave SIM#1 and enter SIM#2. This is where it gets tricky. Most of the parcels on SIM#2 are deeded to GROUP#2 (a different group). The cart proceeds through only the parcels deeded to GROUP#2 until it reaches SIM#3. The parcels on this sim are deeded to GROUP#1. The cart returns to SIM#2 (where the parcels initially are set to GROUP#2). The cart continues to the west of the SIM where it enters a parcel deeded to GROUP#1. This is pretty much the same thing repeated as it goes through other sims.

All the parcels have mostly the same settings. Any land deeded to GROUP#1 only allows group residents only (of which all cart riders belong). Create objects and Allow object entry on the GROUP#1 parcels are set to group. Scripts are set to ALL Residents.

The parcels in GROUP#2 deeded land have Create objects set to GROUP, but object entry and run scripts is set to ALL Residents.

The only time the script checks for who is using the cart is when the avatar sits in the driver seat (camera and control permissions are given), when the horse is worn, and when a passenger sits in the cart (camera permissions are given).

When a rider told me (I was off SIM) that they took the cart for a ride, they made it all the way out of SIM#1 and made it about 1/4 of the way into SIM#2 and then the cart just locked up and they couldn't budge. I came to see what was wrong, they stood, sat, and re-wore the horse. I chased them through 4 of the SIMS and the cart never locked up. I teleported home (off SIM) and within 40 seconds, they IM'd to say the cart froze.

I am not sure there is a good solution to this with the various parcels that are deeded differently. I wonder if it makes more sense to make a cart rezzer that dies when the rider stands. Problem there is with the instability of SIM crossings from time to time, it is not uncommon for the rider to crash, which would mean any passengers in the cart would be dropped as the cart dies.

Link to comment
Share on other sites

it may work if the users wear tags for the main group.

a slight improvement might be to set the rezzor to the main land group rather than a specialty group, preferably deeded... then if the users have any problem, they can wear tags for group 2... that should eliminate all problems... I think... maybe... I hope... lol

Link to comment
Share on other sites

Hmm, I think I will try that. I can always make an access notecard and avoid the whole test for same group thing. We don't want all people in the main group to use the cart, just the approved riders. Then I can deed the cart to the main group which if I understand will work because the deeded owner never leaves.

Thank you. I'll post back on the results.

Link to comment
Share on other sites

I agree with Rolig.   I think this is a permissions issue, https://jira.secondlife.com/browse/SVC-3145, "group ROLE permissions only work for scripted rez when owner online (was rez objects only works if i'm online)".    This is real pain in the neck for those of us who make furniture using systems like MLPV2 that need to rez things.

ETA  It's been reopened as a new feature request,  https://jira.secondlife.com/browse/SVC-6686, "parcel build permissions needs whitelist".

Link to comment
Share on other sites

I must be missing it, but I'm not seeing where rezzing is the part that's failing here.  Rather, it seems the cart freezes (a physical vehicle, I assume, or anyway some scripted thing that is sat upon).  This really sounds as if the parcel is denying script execution to anybody outside the group.  When you're present in the sim, it can tell that you, as owner of the cart, have permission to run scripts on the parcel; once you leave, it can't determine that anymore.  The flaw in that is, of course, that the parcels have scripts (and object entry) enabled for Everyone.

Assuming the parcels really do have those settings, the only thing I can think of is that a script is calling a function that requires parcel permissions, which it can't get when you aren't around (and because you own the cart, it's essentially acting as your proxy).  So, in addition to rezzing, there are some other functions that won't work the same in such cases... llGetParcelPrimOwners() is one, although I'm stumped for an excuse why a vehicle would call that function.  Oh, hmmm... maybe llOverMyLand(), but I can't come up with a story for that one either.

Link to comment
Share on other sites

Yeah, but isn't it the same issue?  If the sim can't tell, if I'm offline, whether or not an object is allowed take advantage of my group abilities to rez things on my behalf, it's not going to know whether it can use my similiar abilities to run scripts either.   That's what I meant -- sounds to me like another manfestation of the same thing.  

Link to comment
Share on other sites

Thanks, Innula.  I wasn't aware of SVC-6686.  I'm glad it's been opened.  As I've reread the OP's latest post, it does seem like the problem is more complex than simply rezzing, but it's still a permissions issue.  I'm not sure that there's an easy solution, although Void's suggestion of deeding the cart to the larger group sounds like the best one so far. 

Link to comment
Share on other sites

Right, but if the parcel allows Everybody to run scripts (as I understand to be the case), then it shouldn't  be checking if the owner can.  Hence my theory that it must be some specific function inside the script that's not behaving the same when the owner's not around, because of those parcel perms.  And that only leads to a solution if those specific functions can be removed.

My concern is that the object may be no-transfer to the current owner, in which case it couldn't be deeded to group.  (But because there are two groups owning different parts of the path, that may not be workable anyway.)

Link to comment
Share on other sites

a permissions issue would likely be tied to either parcel

  • allows scripts
  • allow object entry

and can be hacked around by

  • sharing the object to group if "anyone" for either is unchecked, but group is checked for both.
  • deeding the object to group if the group ability for either is unchecked

the above applies to ever parcel it enters after being rezzed... which is completely impossible for an object that must be deeded to deal with if there is more than one group, and impossible for this situation for an object that must be shared to more than one group. (in world object that don't need to be rezzed, or have to deal with sitters can actually de/re-link themselves to access different groups (that have been preset before linking), although i'm not sure if "share" can be maintained across multiple groups that way)

however the object still needs rez permission, so if rez on the original parcel is set to group only, then the object MUST be shared with that group, and if it's unchecked for that parcel, it MUST be deeded.

 

I expect failure on my last suggestion, because if the setting were stopping the objects in the group2 region, it's very likely that the riders being in that group are unlikely to have any effect on overriding it, since they didn't before, and I expect scripts or object entry for group is turned off in those parcels.

Link to comment
Share on other sites

It shouldn't be having to rez anything by the time it's halfway into the next sim.   They already have a horse.

Object entry permissions don't apply if the object is being sat upon.

Permission for running scripts is not required if the script has done llTakeControls (and not released them).  Most vehicle scripts do this.   Does the cart script take controls?   If it is moddable, that would be easy to add (along with the appropriate llRequestPermissions call).  If not, perhaps you could get the seller to add it.   Note that this only allows passage through no-script land when the cart has a passenger.   It would still get stuck when empty.

Link to comment
Share on other sites

Thank you to all who participated in this thread. I thought I would post back with the results and it is good news.

I deeded the wagon to the GROUP#1, which also has the land deeded to it. The rider of the wagon can wear whatever tag they want.

The wagon successfully makes it throughout all 9 sims, through all parcels. Even as it crosses onto SIMS and parcels owned by another group.

So it seems the deeding resolved the problem.

Awesome!!!

Dmitriy

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 4798 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...