Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

The Open Source Mouselook Motorcycle Project

Kwipper Manimal
Registered User
Join date: 12 Jan 2005
Posts: 52
07-21-2005 23:24
Guys. I am trying to make a motorcycle script that uses the mouselook for control. It also banks while turning like a real motorcycle. However, I cannot think of anymore ideas to make this script better. So, I have decided to leave it in your hands. Here is the script. Post your ideas, code-changes, revisions and results HERE.

BTW. I am using Cory Linden's 3.6 motorcycle model with this script.

CODE


default
{
state_entry()
{
llPassCollisions(TRUE);
llPassTouches(TRUE);
llSetSitText("Ride");
llSitTarget(<0.6, 0.05, 0.20>, ZERO_ROTATION);
llSetCameraEyeOffset(<-7.0, -0.00, 1.0>);
llSetCameraAtOffset(<3.0, 0.0, 2.0>);
llSetVehicleFlags(-1);
llSetVehicleType(VEHICLE_TYPE_CAR);
llSetVehicleFlags(VEHICLE_FLAG_MOUSELOOK_BANK
| VEHICLE_FLAG_MOUSELOOK_STEER
| VEHICLE_FLAG_CAMERA_DECOUPLED
);

llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <1000,0,1000> );
llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, <1000,1000,0> );

llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.5 );
llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0);

llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0 );
llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0 );


// I commented this section out because this is a land based vehicle, therefore hovering is not needed.

//llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
//llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
//llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
//llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );

llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0 );

llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0 );

llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );
llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.5 );

llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );
llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 0 );

//llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> );

}

changed(integer change)
{
if (change & CHANGED_LINK)
{
key agent = llAvatarOnSitTarget();
if (agent)
{
// These following lines have been commented out so that anybody can ride the vehicle (for testing purposes)

//if (agent != llGetOwner())
//{
// llSay(0, "You aren't the owner");
// llUnSit(agent);
// llPushObject(agent, <0,0,10>, ZERO_VECTOR, FALSE);
//}
//else
{
llSetStatus(STATUS_PHYSICS, TRUE);
llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);
llWhisper(0, "Enter into Mouselook Mode to steer the Motorcycle.");
}
}
else
{
llSetStatus(STATUS_PHYSICS, FALSE);
llReleaseControls();
llStopAnimation("motorcycle_sit");
}
}

}

run_time_permissions(integer perm)
{
if (perm)
{
llStartAnimation("motorcycle_sit");
llTakeControls(CONTROL_FWD | CONTROL_DOWN | CONTROL_UP | CONTROL_BACK | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);
}
}
control(key id, integer level, integer edge)
{
vector angular_motor = <40,40,40>;


if(level & CONTROL_FWD)
{
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <40,0,0>);
}

if(level & CONTROL_BACK)
{
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <-40,0,0>);
}

if(level & (CONTROL_RIGHT|CONTROL_ROT_RIGHT))
{
angular_motor.x += 100;
angular_motor.z -= 100;
}

if(level & (CONTROL_LEFT|CONTROL_ROT_LEFT))
{
angular_motor.x -= 100;
angular_motor.z += 100;
}

if(level & (CONTROL_UP))
{
angular_motor.y += 300;
}

if(level & (CONTROL_DOWN))
{
angular_motor.y -= 100;
}

llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);
}
}

Kwipper Manimal
Registered User
Join date: 12 Jan 2005
Posts: 52
07-22-2005 12:52
Bump
Kwipper Manimal
Registered User
Join date: 12 Jan 2005
Posts: 52
07-26-2005 12:53
.... what. Nobody's interested?