I have recently become aware that there's an entire cottage industry of scripts whose purpose is to make a single prim in a linkset phantom. These scripts are needed because: a) Usually the phantom flag is set for an entire linkset, so it's necessary to use a script to change the flag for a single prim b) The LSL functions that change the Phantom flag (llSetStatus() and llSetPrimitiveParams()) change it for the entire linkset at once, so they can't be used to change a single prim.
These scripts use a very complicated workaround that involve changing the prim's shape in several steps, which is brittle and dangerous. You can see the scripts here: http://wiki.secondlife.com/wiki/Phantom_Child In Second Life there is now a simpler and safer way to make a single prim stop colliding: llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]); However, this isn't implemented in OpenSim. And I don't know if it's exactly equivalent to making the prim phantom. I propose extending llSetStatus() to allow setting the phantom flag for a single prim. This involves adding the flag OS_STATUS_PHANTOM_PRIM. It works just like the existing flag STATUS_PHANTOM, but it operates on the prim that contains the script instead of the entire linkset. This behavior mirrors the way llSetStatus() works with the STATUS_BLOCK_GRAB flag: it also comes in two flavors, STATUS_BLOCK_GRAB (for a prim) and STATUS_BLOCK_GRAB_OBJECT (for the linkset). Any thoughts? Does anyone know of a different way to safely change the phantom flag for a single prim in a linkset? Oren -- View this message in context: http://opensim-dev.2196679.n2.nabble.com/Setting-a-single-child-prim-to-Phantom-tp7578513.html Sent from the opensim-dev mailing list archive at Nabble.com. _______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev
