This is a simple script to do the following:
float speed;
default
{
state_entry()
{
llListen(39, "", llGetOwner(), "");
llOwnerSay("Just say /39 <speed> to set your speed.. touch me to turn off... and watch your step!!");
}
on_rez(integer sp)
{ // reset when changing owners is really the point of this
llResetScript();
}
touch_start(integer total_number)
{ // get touched... turn off
speed = 0.0;
llSetTimerEvent(0.0);
llOwnerSay("Walker off... to turn on, type /39 <speed>");
}
listen( integer ch, string nam, key id, string msg )
{ // set speed
speed = (float)(msg);
if( speed != 0 ) {
llSetTimerEvent(0.1);
} else {
llOwnerSay("Walker off.");
llSetTimerEvent(0.0);
}
}
timer()
{ // pushing forward, nice and straightforward. *grins*
vector modspeed = <speed,0,0.25>*llGetRot() - llGetVel();
llPushObject( llGetOwner(), modspeed*llGetObjectMass(llGetOwner()), ZERO_VECTOR, FALSE );
}
}
ScriptLibrary SendaoGoodman