Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

tearing my hair out trying to make it work

Lexie Bumstead
Registered User
Join date: 12 Jan 2008
Posts: 12
12-13-2009 01:23
ok im begining to get somwhere using this script from a freebie car but the problem I have is that as I slide down the hill i keep ending up tipped upsidedown is there any thing I can do to change this?

string last_wheel_direction;
string cur_wheel_direction;

default {
state_entry() {
llSetSitText("Drive";);
llSitTarget(<.4,0,.4>, ZERO_ROTATION);
llSetVehicleType(VEHICLE_TYPE_CAR);
llSetCameraEyeOffset(<-5,0,3>;);
llSetCameraAtOffset(<5,0,1>;);
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.20);
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80);
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10);
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.2);
llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1);
llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.5);
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <1000.0, 2.0, 1000.0> );
llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <10.0, 10.0, 1000.0> );
//llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.50);
//llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.50);
}

changed(integer change) {
if (change & CHANGED_LINK) {
key agent = llAvatarOnSitTarget();
if (agent) {
if (agent != llGetOwner()) {
llSay(0, "You don't have the key.";);
llSleep(.5);
llUnSit(agent);
} else {
llMessageLinked(LINK_ALL_CHILDREN , 0, "WHEEL_DRIVING", NULL_KEY);
llSleep(.4);
llSetStatus(STATUS_PHYSICS, TRUE);
llSleep(.1);
llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);
llSetTimerEvent(0.1);

}
} else {
llSetTimerEvent(0);
llSetStatus(STATUS_PHYSICS, FALSE);
llSleep(.1);
llMessageLinked(LINK_ALL_CHILDREN , 0, "WHEEL_DEFAULT", NULL_KEY);
llSleep(.4);
llReleaseControls();
llStopSound();
llResetScript();
}
}
}

run_time_permissions(integer perm) {
if (perm) {
llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT |
CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);
}
}

control(key id, integer level, integer edge) {
integer reverse=1;
vector angular_motor;
vector vel = llGetVel();
float speed = llVecMag(vel);

if(level & CONTROL_FWD) {
cur_wheel_direction = "WHEEL_FORWARD";
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <25,0,0> );
reverse=1;
}

if(level & CONTROL_BACK) {
cur_wheel_direction = "WHEEL_REVERSE";
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <-15,0,0> );
reverse = -1;
}

if(level & (CONTROL_RIGHT|CONTROL_ROT_RIGHT)) {
cur_wheel_direction = "WHEEL_RIGHT";
angular_motor.z -= speed / 6 * reverse;
}

if(level & (CONTROL_LEFT|CONTROL_ROT_LEFT)) {
cur_wheel_direction = "WHEEL_LEFT";
angular_motor.z += speed / 6 * reverse;
}

llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);

}

timer() {
if (cur_wheel_direction != last_wheel_direction) {
llMessageLinked(LINK_ALL_CHILDREN , 0, cur_wheel_direction, NULL_KEY);
last_wheel_direction = cur_wheel_direction;
}
}
}
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
12-13-2009 04:39
uncomment and play with the vertical attractor settings
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -