Heyaz.
vector Global2Local(vector vGlobalPos)
{
return vGlobalPos - llGetRegionCorner();
}
vector Local2Global(vector vLocalPos)//added just for symetry
{
return vLocalPos + llGetRegionCorner();
}
integer GetLinkNumberFromName(string szPrimName)
{
integer nTotalPrims = llGetNumberOfPrims();
integer i = 1;
while(i <= nTotalPrims)
{
string szTmpName = llGetLinkName(i);
if(szTmpName == szPrimName)
return i;
i++;
}
return -1;//not found
}
// This should do what you want if I'm understanding you correctly. Again, it's only for moving inside one sim. There is no error checking that the position you want to move to is within 10m of the last position.
MoveChildGlobal(vector vGlobal, string szPrimName)
{
vector vNextPos = Global2Local(vGlobal);//must convert to local coords since llSetLinkPrimitiveParams expects local vectors
integer nLinkNumber = GetLinkNumberFromName(szPrimName);//assumes all prims have unique names
if(nLinkNumber != -1)
llSetLinkPrimitiveParams(nLinkNumber,[PRIM_POSITION,vNextPos]);
else
llOwnerSay("Doh! " + szPrimName + " not found."

;
}
Honestly, what I would recommend you do would be just convert your global coords to local before any movement calls though.
Hope this helps.
~Az