I am working on a bot (LSL, based) that should roam sims.
The information where to go to, i.e. the "course" or "path" to follow, is given.
Each leg of the course will span several sims and thus cross several sim borders.
For that reason and for the sake of simplicity I decided to use llSetPos and the usual looped approach based on that instead of some of the available "warper" algorithms.
So I calculate the next target and make step into that direction by using llSetPos until I reach the target.
The operation height of the bot is 1000 meter or higher so I should be well above any problems based on "scripts not allowed" or "objects not allowed to enter", right?
All this works well 95% of the time. But I often I observe the following:
- llSetPos (with a new position definitely different from the current position) does not yield in any movement neither visible nor checked with a subsequent llGetPos.
- This does NOT happen with movements where the expected step (<=10meter!) will cross a sim boundery or even worse, will go off-world! Indeed this usually happens near the sim center (128/12
. The "courses" where it happens are also perpendicular to the next sim boundary to make sure no sim *corner* is involved.- This happens only with certain sims or it happens there so often that other occurences got through unnoticed.
- This always happens on a course change, i.e. a change of direction for 90°.
- This "stucking" does not happen, when an avie sits on the prim
- This "stucking" happens with a certain and high probability (about 90%) but not always
What I tried to work around this:
Step into an other direction --> still stuck
Reset the script that does the movement --> still stuck
Limit step widths to below the magical 10 meter limit --> no change
Use llSetPrimParameter instead of llSetPos --> no change
Switch the prim to physical for a moment to move it to another height --> works but after switching back llSetPos still refuses to work.
Any ideas or helpful hints?
Best regards
Cynthia
;