[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensim-users
Subject:    [Opensim-users] OpenSim Crashes when running a small Vehicle Script
From:       james.stallings () gmail ! com (James Stallings II)
Date:       2009-09-24 14:07:35
Message-ID: 170fa1780909240707o1ce62ee2m48f51561f2f42d96 () mail ! gmail ! com
[Download RAW message or body]

OpenSim support for vehicles using LSL is in its very early stages, and has
not yet been completely implemented.

For information on bleeding edge work with LSL vehicles on OpenSim, see
http://osgrid.org/forums/viewtopic.php?f=19&t=1747&sid=d1081fc8fdba4dae622abb8783a97d02

Cheers
James/Hiro


On Mon, Sep 21, 2009 at 5:31 PM, Thomas Seuring <Thomas at seuring.com> wrote:

>  I've wrote a small, very easy Script to drive a Vehicle. But everytime I
> get and like to drive, OpenSim crashes.
>
> Any ideas?
>
> Thanks
>
> Tom
>
> BELOW: Crash and Code:
>
>
> The crash is:
>
> Region (root) # Stacktrace:
>
>   at (wrapper managed-to-native) Ode.NET.d.JointSetLMotorAxis
> (intptr,int,int,single,single,single) <0x00004>
>   at (wrapper managed-to-native) Ode.NET.d.JointSetLMotorAxis
> (intptr,int,int,single,single,single) <0xffffffff>
>   at
> OpenSim.Region.Physics.OdePlugin.ODEVehicleSettings.SetLinearMotorProperties
> () <0x001e6>
>   at OpenSim.Region.Physics.OdePlugin.ODEVehicleSettings.LinearMotor
> (single) <0x004aa>
>   at OpenSim.Region.Physics.OdePlugin.ODEVehicleSettings.Step (single)
> <0x0009b>
>   at OpenSim.Region.Physics.OdePlugin.OdePrim.Move (single) <0x00b20>
>   at OpenSim.Region.Physics.OdePlugin.OdeScene.Simulate (single) <0x0155f>
>   at OpenSim.Region.Framework.Scenes.SceneGraph.UpdatePhysics (double)
> <0x0003c>
>   at OpenSim.Region.Framework.Scenes.Scene.Update () <0x004d5>
>   at OpenSim.Region.Framework.Scenes.Scene.Heartbeat (object) <0x00018>
>   at (wrapper runtime-invoke) object.runtime_invoke_void__this___object
> (object,intptr,intptr,intptr) <0xffffffff>
> Abort trap
>
>
> The Script is:
> // set the vehicle parameters
> setupVehicle()
> {
>     llSetStatus(STATUS_PHYSICS, TRUE);
>     llSetVehicleType(VEHICLE_TYPE_CAR);
>
>     // The vehicle will get up to full speed in 1 second
>     llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);
>
>     // The motor will become ineffective after 3 seconds.
>     llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 3.0);
>
>     // Turn off angular and linear deflection
>     llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.0);
>     llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.0);
>
>     // Set low linear friction, equal in all directions
>     llSetVehicleFloatParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, 5000.0);
>
>     // Set very high angular friction, this vehicle does not
>     // like to turn
>     llSetVehicleFloatParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, 0.1);
> }
>
> // stop this object from being a vehicle
> noVehicle()
> {
>     // Turn off physics and vehicle params
>     llSetVehicleType(VEHICLE_TYPE_NONE);
>     llSetStatus(STATUS_PHYSICS, FALSE);
> }
>
> // give this prim a wedge shape and set it to about avatar size
> setupObject()
> {
>     llSetPrimitiveParams([
>     PRIM_TYPE,
>         PRIM_TYPE_BOX,
>         PRIM_HOLE_DEFAULT,
>         <0.75, 1.0, 0.0>,
>         0.0,
>         <0.0, 0.0, 0.0>,
>         <1.0, 1.0, 0.0>,
>         <0.0, 0.0, 0.0>,
>     PRIM_SIZE,
>         <4.0, 1.5, 0.5>
>         ]);
> }
>
> // default state, not a vehicle
> default
> {
>     state_entry()
>     {
>         noVehicle();
>         setupObject();
>
>         // Set the location avatars will sit
>         llSitTarget(<-1.0, 0.0, 0.5>, ZERO_ROTATION);
>     }
>
>     changed(integer change)
>     {
>         if (change & CHANGED_LINK)
>         {
>             if (llAvatarOnSitTarget() != NULL_KEY)
>             {
>                 // someone is sitting on the object; request permission
>                 // to take controls
>                 llRequestPermissions(
>                     llAvatarOnSitTarget(),
>                     PERMISSION_TAKE_CONTROLS);
>             }
>         }
>     }
>
>     run_time_permissions(integer perm)
>     {
>         // the run time permissions have changed; if script can
>         // take controls, do that and go to the vehicle state
>         if (perm & PERMISSION_TAKE_CONTROLS)
>         {
>             llTakeControls(
>                 CONTROL_FWD | CONTROL_BACK |
>                 CONTROL_LEFT | CONTROL_RIGHT |
>                 CONTROL_ROT_LEFT |CONTROL_ROT_RIGHT,
>                 TRUE, FALSE);
>             state vehicle;
>         }
>     }
> }
>
> state vehicle
> {
>     state_entry()
>     {
>         setupVehicle();
>     }
>
>     changed(integer change)
>     {
>         // If the avatar sitting on this object gets up, stop
>         // being a vehicle
>         if (change & CHANGED_LINK)
>         {
>             if (llAvatarOnSitTarget() == NULL_KEY)
>             {
>                 // no one is sitting on the object; stop
>                 // being a vehicle
>                 llReleaseControls();
>                 state default;
>             }
>         }
>     }
>
>     control(key from, integer level, integer edge)
>     {
>         integer pressed = (level & edge);
>         vector velocity = ZERO_VECTOR;
>         float speed = 15.0;
>
>         if (pressed & CONTROL_FWD)
>         {
>             velocity = <1.0, 0.0, 0.0>;
>         }
>         else if (pressed & CONTROL_BACK)
>         {
>             velocity = <-1.0, 0.0, 0.0>;
>         }
>         else if (pressed & CONTROL_LEFT ||
>                  pressed & CONTROL_ROT_LEFT)
>         {
>             velocity = <0.0, 1.0, 0.0>;
>         }
>         else if (pressed & CONTROL_RIGHT ||
>                  pressed & CONTROL_ROT_RIGHT)
>         {
>             velocity = <0.0, -1.0, 0.0>;
>         }
>         if (velocity != ZERO_VECTOR)
>         {
>             velocity = velocity * speed;
>             llSetVehicleVectorParam(
>                 VEHICLE_LINEAR_MOTOR_DIRECTION,
>                 velocity);
>         }
>     }
> }
>
> _______________________________________________
> Opensim-users mailing list
> Opensim-users at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-users
>
>


-- 
===================================
http://osgrid.org
http://del.icio.us/SPQR
http://twitter.com/jstallings2
http://www.linkedin.com/pub/5/770/a49
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.berlios.de/pipermail/opensim-users/attachments/20090924/e518de15/attachment.html>

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic