[Opensim-users] A prim got away from me.. how to find it...?

James Hughes jamesh at bluewallgroup.com
Tue May 31 21:53:16 UTC 2011


On 05/31/2011 03:58 PM, missyfitz wrote:
> So I was editing a prim today on a sim-scale build and attempted to change
> the X position from 71 to 66 and I think I must have accidentally included
> the decimal when I selected the 71, which would have made the new position
> 66000 instead of 66.000... I'm not even sure if this is what happened, but
> the end result was that as soon as I hit 'enter' to commit what I thought
> was a 66.000 position, the prim vanished and my selection of it in the build
> tool was deactivated, which makes me think it did indeed get shot to
> 66000m.. this would have taken it off-sim, but no prim was returned to me
> due to going off-sim.. so is there any way to find such a lost prim?
> 
> Worst case scenario is that I can save today's builds to inventory and then
> wipe the sim and restore this morning's OAR file then reposition the new
> saved builds, but I'd like to be sure that that missing prim isn't hanging
> out somewhere in my installation... 
> 
> I've tried searching the mySQL database for prims at PositionX of 6, 66,
> 66.000 and 66000 but can't find anything. Queries on PositionX = "6%" only
> yield results of 6, so the wildcard doesn't seem to work.. 
> 
> Any suggestions?
> 
> 


Use GroupPosition[X/Y] and search for > 256 and < 0. You can set those
to someting in-bounds and restart the sim if you want. If you delete
them, then you'll want to remove the associated entries in primshapes
and if they contain inventory, you'll want to remove them from the
primitems table. save the prims for last...

to show the primitems...
SELECT name
FROM `primitems`
WHERE primid
IN (
SELECT uuid
FROM prims
WHERE `GroupPositionX` < '0'
OR `GroupPositionX` > '256'
OR `GroupPositionY` < '0'
OR `GroupPositionY` > '256'
OR `GroupPositionZ` < '-1'
);

to show the primshapes...
SELECT uuid
FROM `primshapes`
WHERE uuid
IN (
SELECT uuid
FROM prims
WHERE `GroupPositionX` < '0'
OR `GroupPositionX` > '256'
OR `GroupPositionY` < '0'
OR `GroupPositionY` > '256'
OR `GroupPositionZ` < '-1'
);

to show the prims...
SELECT Name, `GroupPositionX` , `GroupPositionY` , `GroupPositionZ` ,
UUID, RegionUUID
FROM `prims`
WHERE `GroupPositionX` < '0'
OR `GroupPositionX` > '256'
OR `GroupPositionY` < '0'
OR `GroupPositionY` > '256'
OR `GroupPositionZ` < '-1';


after running these, if you see things that need to be removed, do these
**with the prims table last**...


clean primitems..
DELETE FROM `primitems`
WHERE primid
IN (
SELECT uuid
FROM prims
WHERE `GroupPositionX` < '0'
OR `GroupPositionX` > '256'
OR `GroupPositionY` < '0'
OR `GroupPositionY` > '256'
OR `GroupPositionZ` < '-1'
);

to clean the primshapes...
DELETE FROM `primshapes`
WHERE uuid
IN (
SELECT uuid
FROM prims
WHERE `GroupPositionX` < '0'
OR `GroupPositionX` > '256'
OR `GroupPositionY` < '0'
OR `GroupPositionY` > '256'
OR `GroupPositionZ` < '-1'
);

and last...
DELETE FROM `prims`
WHERE `GroupPositionX` < '0'
OR `GroupPositionX` > '256'
OR `GroupPositionY` < '0'
OR `GroupPositionY` > '256'
OR `GroupPositionZ` < '-1';



More information about the Opensim-users mailing list