CODE
float move = 0.1;
float rot = 2;
default
{
on_rez(integer num)
{
llResetScript();
}
state_entry()
{
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
}
run_time_permissions(integer perm)
{
if(perm & PERMISSION_TAKE_CONTROLS)
{
llTakeControls(CONTROL_FWD|CONTROL_BACK|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT, TRUE, FALSE);
}
else
{
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
}
}
control(key id,integer held,integer change)
{
if((CONTROL_FWD & held & change))
{
llSetPos(llGetPos() + <move,0,0> * llGetRot());
}
if((CONTROL_BACK & held & change))
{
llSetPos(llGetPos() + <-move,0,0> * llGetRot());
}
if((CONTROL_ROT_LEFT & held & change))
{
llSetRot(llGetRot() * llEuler2Rot(<0,0,rot> * DEG_TO_RAD));
}
if((CONTROL_ROT_RIGHT & held & change))
{
llSetRot(llGetRot() * llEuler2Rot(<0,0,-rot> * DEG_TO_RAD));
}
}
}
-neb.