User:Gregory Maurer/PhantomChild

From Second Life Wiki
< User:Gregory Maurer
Revision as of 20:26, 16 May 2009 by Gregory Maurer (talk | contribs) (Created Page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This is a very simple to use script that can be placed in any child prim that can be made flexible, to make it phantom. This is useful for making link sets where you need phantom and solid prims. It's based on the original Phantom Child, but it is a bit more advanced, drag and drop.

<lsl> list prim_type;

phantom() {

   list prim_type_params = [ PRIM_TYPE ] + prim_type;
   llSetPrimitiveParams( prim_type_params + [ PRIM_FLEXIBLE , TRUE , 0 , 0.0 , 0.0 , 0.0 , 0.0 , < 0.0 , 0.0 , 0.0 > ] + prim_type_params + [ PRIM_PHYSICS , llGetStatus( STATUS_PHYSICS ) ] );    

}

default {

   on_rez( integer start_param )
   {
       llResetScript();
   }
   
   state_entry()
   {
       prim_type = llGetPrimitiveParams( [ PRIM_TYPE ] );
       phantom();
   }
   
   changed( integer change )
   {
       if ( change & ( CHANGED_REGION | CHANGED_LINK ) ) phantom();
   }
   
   collision_start( integer num_detected )
   {
       if ( llDetectedLinkNumber( 0 ) == llGetLinkNumber() ) phantom();
   }

} </lsl>