Pointing Stick
Revision as of 08:51, 12 March 2011 by Rhonin Nissondorf (talk | contribs)
Made this to point at folk when its their turn at games lolz right. the useful tidbit is how it goes in the direction of what ever angle its pointing in.
<lsl> integer on = TRUE;
default
{
state_entry() { llSetText("Touch to activate",<0,1,0>,1); }
changed(integer change) { if(change & (CHANGED_OWNER | CHANGED_INVENTORY)) llResetScript(); }
on_rez(integer x)
{ llResetScript();
} touch_start(integer y)
{ if (on == TRUE) { llRequestPermissions(llDetectedKey(0), PERMISSION_TAKE_CONTROLS); on = FALSE; } else if (on == FALSE) { llReleaseControls(); on = TRUE; }
}
run_time_permissions(integer perm) { if (perm & PERMISSION_TAKE_CONTROLS) { llTakeControls( CONTROL_FWD|CONTROL_BACK|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT,TRUE,FALSE); }
}
control(key id, integer level, integer edge) { if (level & CONTROL_FWD) { llSetLinkPrimitiveParamsFast(-4,[ PRIM_POSITION, llGetPos() +<0,00,0.25> * llGetLocalRot()]); } if (level & CONTROL_BACK) { llSetLinkPrimitiveParamsFast(-4,[ PRIM_POSITION, llGetPos() +<0,00,-0.25> * llGetLocalRot()]);
}
if(level & CONTROL_ROT_LEFT) { llSetLinkPrimitiveParamsFast(-4,[PRIM_ROT_LOCAL, llGetLocalRot() * llEuler2Rot(<0,0,5>*DEG_TO_RAD)]);
}
if (level& CONTROL_ROT_RIGHT)
{
llSetLinkPrimitiveParamsFast(-4,[PRIM_ROT_LOCAL, llGetLocalRot() * llEuler2Rot(<0,0,-5>*DEG_TO_RAD)]);
}
}
}