On my world Panthalassa, surfboards that have been rezzed for a long time return correctly.
If I rez a fresh one, it fails to return, as reported by my customers.
I narrowed the problem down to a call to llSetLinkPrimitiveParamsFast. The call does not get an error, calling llGetPos afterwards returns the new position, but the prim does not move. I tried this in the SW corner of Panthalassa, and in mega areas, it fails in any location type.
Here is the routine I use to return boards to the beach:
Code: Select all
SetRegionPos(vector pos)
{
while (llVecDist(pos,llGetPos())>0.01)
llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_POSITION,pos]);
}
Similar calls to change the prim's rotation also fail at the same time.
I tried putting diagnostics in one of the surfboards that was retuning correctly, to see why. As soon as I re-compiled it, it started failing to return like the new copies do.
I tried writing a simple program to show llSetLinkPrimitiveParamsFast failing, but this test worked correctly and moved a single prim. I tried putting this simple test in a surfboard, it still works. So I can only repeat the problem in objects with a big complex script so far...
Is there some change in the recent system updates that can make this very basic function fail?