OpenSim support for vehicles using LSL is in its very early stages, and has not yet been completely implemented.<br><br>For information on bleeding edge work with LSL vehicles on OpenSim, see <a href="http://osgrid.org/forums/viewtopic.php?f=19&t=1747&sid=d1081fc8fdba4dae622abb8783a97d02">http://osgrid.org/forums/viewtopic.php?f=19&t=1747&sid=d1081fc8fdba4dae622abb8783a97d02</a><br>
<br>Cheers<br>James/Hiro<br><br><br><div class="gmail_quote">On Mon, Sep 21, 2009 at 5:31 PM, Thomas Seuring <span dir="ltr"><<a href="mailto:Thomas@seuring.com">Thomas@seuring.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<font size="2"><font face="Verdana, Helvetica, Arial"><span style="font-size: 10pt;">I've wrote a small, very easy Script to drive a Vehicle. But everytime I get and like to drive, OpenSim crashes.<br>
<br>
Any ideas?<br>
<br>
Thanks<br>
<br>
Tom<br>
<br>
BELOW: Crash and Code:<br>
<br>
<br>
The crash is:<br>
<br>
Region (root) # Stacktrace:<br>
<br>
at (wrapper managed-to-native) Ode.NET.d.JointSetLMotorAxis (intptr,int,int,single,single,single) <0x00004><br>
at (wrapper managed-to-native) Ode.NET.d.JointSetLMotorAxis (intptr,int,int,single,single,single) <0xffffffff><br>
at OpenSim.Region.Physics.OdePlugin.ODEVehicleSettings.SetLinearMotorProperties () <0x001e6><br>
at OpenSim.Region.Physics.OdePlugin.ODEVehicleSettings.LinearMotor (single) <0x004aa><br>
at OpenSim.Region.Physics.OdePlugin.ODEVehicleSettings.Step (single) <0x0009b><br>
at OpenSim.Region.Physics.OdePlugin.OdePrim.Move (single) <0x00b20><br>
at OpenSim.Region.Physics.OdePlugin.OdeScene.Simulate (single) <0x0155f><br>
at OpenSim.Region.Framework.Scenes.SceneGraph.UpdatePhysics (double) <0x0003c><br>
at OpenSim.Region.Framework.Scenes.Scene.Update () <0x004d5><br>
at OpenSim.Region.Framework.Scenes.Scene.Heartbeat (object) <0x00018><br>
at (wrapper runtime-invoke) object.runtime_invoke_void__this___object (object,intptr,intptr,intptr) <0xffffffff><br>
Abort trap<br>
<br>
<br>
The Script is:<br>
// set the vehicle parameters<br>
setupVehicle()<br>
{<br>
llSetStatus(STATUS_PHYSICS, TRUE);<br>
llSetVehicleType(VEHICLE_TYPE_CAR);<br>
<br>
// The vehicle will get up to full speed in 1 second<br>
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);<br>
<br>
// The motor will become ineffective after 3 seconds.<br>
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 3.0);<br>
<br>
// Turn off angular and linear deflection <br>
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.0);<br>
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.0);<br>
<br>
// Set low linear friction, equal in all directions<br>
llSetVehicleFloatParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, 5000.0);<br>
<br>
// Set very high angular friction, this vehicle does not <br>
// like to turn<br>
llSetVehicleFloatParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, 0.1); <br>
}<br>
<br>
// stop this object from being a vehicle<br>
noVehicle()<br>
{<br>
// Turn off physics and vehicle params<br>
llSetVehicleType(VEHICLE_TYPE_NONE);<br>
llSetStatus(STATUS_PHYSICS, FALSE);<br>
}<br>
<br>
// give this prim a wedge shape and set it to about avatar size<br>
setupObject()<br>
{<br>
llSetPrimitiveParams([<br>
PRIM_TYPE, <br>
PRIM_TYPE_BOX,<br>
PRIM_HOLE_DEFAULT,<br>
<0.75, 1.0, 0.0>,<br>
0.0,<br>
<0.0, 0.0, 0.0>,<br>
<1.0, 1.0, 0.0>,<br>
<0.0, 0.0, 0.0>,<br>
PRIM_SIZE,<br>
<4.0, 1.5, 0.5><br>
]);<br>
}<br>
<br>
// default state, not a vehicle<br>
default<br>
{<br>
state_entry()<br>
{<br>
noVehicle();<br>
setupObject();<br>
<br>
// Set the location avatars will sit<br>
llSitTarget(<-1.0, 0.0, 0.5>, ZERO_ROTATION);<br>
}<br>
<br>
changed(integer change)<br>
{<br>
if (change & CHANGED_LINK)<br>
{<br>
if (llAvatarOnSitTarget() != NULL_KEY)<br>
{<br>
// someone is sitting on the object; request permission<br>
// to take controls<br>
llRequestPermissions(<br>
llAvatarOnSitTarget(),<br>
PERMISSION_TAKE_CONTROLS); <br>
}<br>
}<br>
}<br>
<br>
run_time_permissions(integer perm)<br>
{<br>
// the run time permissions have changed; if script can <br>
// take controls, do that and go to the vehicle state<br>
if (perm & PERMISSION_TAKE_CONTROLS)<br>
{<br>
llTakeControls(<br>
CONTROL_FWD | CONTROL_BACK | <br>
CONTROL_LEFT | CONTROL_RIGHT | <br>
CONTROL_ROT_LEFT |CONTROL_ROT_RIGHT,<br>
TRUE, FALSE);<br>
state vehicle;<br>
}<br>
}<br>
}<br>
<br>
state vehicle<br>
{<br>
state_entry()<br>
{<br>
setupVehicle();<br>
}<br>
<br>
changed(integer change)<br>
{<br>
// If the avatar sitting on this object gets up, stop <br>
// being a vehicle<br>
if (change & CHANGED_LINK)<br>
{<br>
if (llAvatarOnSitTarget() == NULL_KEY)<br>
{<br>
// no one is sitting on the object; stop <br>
// being a vehicle<br>
llReleaseControls();<br>
state default;<br>
}<br>
}<br>
}<br>
<br>
control(key from, integer level, integer edge)<br>
{<br>
integer pressed = (level & edge);<br>
vector velocity = ZERO_VECTOR;<br>
float speed = 15.0;<br>
<br>
if (pressed & CONTROL_FWD)<br>
{<br>
velocity = <1.0, 0.0, 0.0>;<br>
}<br>
else if (pressed & CONTROL_BACK)<br>
{<br>
velocity = <-1.0, 0.0, 0.0>;<br>
} <br>
else if (pressed & CONTROL_LEFT || <br>
pressed & CONTROL_ROT_LEFT)<br>
{<br>
velocity = <0.0, 1.0, 0.0>;<br>
}<br>
else if (pressed & CONTROL_RIGHT || <br>
pressed & CONTROL_ROT_RIGHT)<br>
{<br>
velocity = <0.0, -1.0, 0.0>;<br>
}<br>
if (velocity != ZERO_VECTOR)<br>
{<br>
velocity = velocity * speed;<br>
llSetVehicleVectorParam(<br>
VEHICLE_LINEAR_MOTOR_DIRECTION, <br>
velocity);<br>
} <br>
}<br>
}</span></font></font>
</div>
<br>_______________________________________________<br>
Opensim-users mailing list<br>
<a href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-users" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-users</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>===================================<br><a href="http://osgrid.org">http://osgrid.org</a><br><a href="http://del.icio.us/SPQR">http://del.icio.us/SPQR</a><br><a href="http://twitter.com/jstallings2">http://twitter.com/jstallings2</a><br>
<a href="http://www.linkedin.com/pub/5/770/a49">http://www.linkedin.com/pub/5/770/a49</a><br>