Author Topic: Making a WheeledVehicle Vehicle Float (Without switching to flyingvehicle)  (Read 465 times)

Hello, I was wondering what I could do to a WheeledVehicle to make it float. I can't use flyingvehicle because the physics just seem too unstable.

I'd like to make it perform like a helicopter- again, without making it a flyingvehicle.

Code: [Select]
datablock WheeledVehicleData(gc_BlimpVehicle)
{
  uiName = "Blimp";
  category = "Vehicles";
  displayName = "";
  shapeFile = "./blimp.dts";
  emap = true;
  minMountDist = 6;
  numMountPoints = 6;
  mountThread[0] = "root";
  mountThread[1] = "root";
  mountThread[2] = "root";
  mountThread[3] = "root";
  mountThread[4] = "root";
  mountThread[5] = "root";
  maxDamage = 500;
        destroyedLevel = 100.00;
        energyPerDamagePoint = 160;
        speedDamageScale = 1.04;
        collDamageThresholdVel = 20.0;
        collDamageMultiplier   = 0.02;

        massCenter = "0 0 0";
   //massBox = "2 5 1";

        maxSteeringAngle = 0.9785;  // Maximum steering angle, should match animation
        integration = 4;           // Force integration time: TickSec/Rate
        tireEmitter = VehicleTireEmitter; // All the tires use the same dust emitter

        // 3rd person camera settings
        cameraRoll = false;         // Roll the camera with the vehicle
        cameraMaxDist = 20;         // Far distance from vehicle
        cameraOffset = 7.5;        // Vertical offset from camera mount point
        cameraLag = 0.0;           // Velocity lag of camera
        cameraDecay = 0.75;        // Decay per sec. rate of velocity lag
        cameraTilt = 0.4;
   collisionTol = 0.1;        // Collision distance tolerance
   contactTol = 0.1;
        heightcontrol=1;

        useEyePoint = false;       

        // defaultTire        = biplaneTire;
        // defaultSpring        = biplaneSpring;
        // flatTire        = biplaneFlatTire;
        // flatSpring        = biplaneFlatSpring;

   //numWheels = 3;

        // Rigid Body
        mass = 200;
        density = 5.0;
        drag = 0.0;
        bodyFriction = 0.6;
        bodyRestitution = 0.6;
        minImpactSpeed = 10;        // Impacts over this invoke the script callback
        softImpactSpeed = 10;       // Play SoftImpact Sound
        hardImpactSpeed = 15;      // Play HardImpact Sound
        groundImpactMinSpeed    = 10.0;

        // Engine
        engineTorque = 4000; //4000;       // Engine power
        engineBrake = 2000;         // Braking when throttle is 0
        brakeTorque = 4000;        // When brakes are applied
        maxWheelSpeed = 20;        // Engine scale by current speed / max speed

        rollForce                = 900;
        yawForce                = 600;
        pitchForce                = 1000;
        rotationalDrag                = 0.2;

        // Energy
        maxEnergy = 100;
        jetForce = 3000;
        minJetEnergy = 30;
        jetEnergyDrain = 2;

   isSled = false;

   forwardThrust                = 3000;
        reverseThrust                = 2000;
        lift                        = 100;
        maxForwardVel                = ;
        maxReverseVel                = 5;
        horizontalSurfaceForce        = 130;   // Horizontal center "wing" (provides "bite" into the wind for climbing/diving and turning)
        verticalSurfaceForce        = 130;
        rollForce                = 4000;
        yawForce                = 6000;
        pitchForce                = 6000;
        rotationalDrag                = 0.5;
        stallSpeed                = 10;

        splash = vehicleSplash;
        splashVelocity = 4.0;
        splashAngle = 67.0;
        splashFreqMod = 300.0;
        splashVelEpsilon = 0.60;
        bubbleEmitTime = 1.4;
        splashEmitter[0] = vehicleFoamDropletsEmitter;
        splashEmitter[1] = vehicleFoamEmitter;
        splashEmitter[2] = vehicleBubbleEmitter;
        mediumSplashSoundVelocity = 10.0;   
        hardSplashSoundVelocity = 20.0;   
        exitSplashSoundVelocity = 5.0;
               
        //mediumSplashSound = "";
        //hardSplashSound = "";
        //exitSplashSound = "";
       
        // Sounds
        //   jetSound = ScoutThrustSound;
        //engineSound = idleSound;
        //squealSound = skidSound;
        softImpactSound = slowImpactSound;
        hardImpactSound = fastImpactSound;
        //wheelImpactSound = slowImpactSound;

        //   explosion = VehicleExplosion;
        justcollided = 0;

   uiName = "Blimp";
        rideable = true;
                lookUpLimit = 0.50;
                lookDownLimit = 0.50;

        paintable = true;
   
   damageEmitter[0] = VehicleBurnEmitter;
        damageEmitterOffset[0] = "0.0 0.0 0.0 ";
        damageLevelTolerance[0] = 0.99;

   damageEmitter[1] = VehicleBurnEmitter;
        damageEmitterOffset[1] = "0.0 0.0 0.0 ";
        damageLevelTolerance[1] = 1.0;

   numDmgEmitterAreas = 1;

   initialExplosionProjectile = vehicleExplosionProjectile;
   initialExplosionOffset = 0;         //offset only uses a z value for now

   burnTime = 4000;

   finalExplosionProjectile = vehicleFinalExplosionProjectile;
   finalExplosionOffset = 0.5;          //offset only uses a z value for now


   minRunOverSpeed    = 2;   //how fast you need to be going to run someone over (do damage)
   runOverDamageScale = 5;   //when you run over someone, speed * runoverdamagescale = damage amt
   runOverPushScale   = 1.2; //how hard a person you're running over gets pushed
   
      // Advanced Steering
   steeringAutoReturn = false;
   // steeringAutoReturnRate = 0.9;
   // steeringAutoReturnMaxSpeed = 10;
   steeringUseStrafeSteering = false;
   // steeringStrafeSteeringRate = 0.1;
   
   // minContrailSpeed = 30;
};

What do you mean by unstable? The physics should be uniform throughout the game so I think you'd have to deal with it eventually.

increase the drag lower the mass

iirc you can adjust mass and drag in-game through the console, so i suggest you do that until you get what you want

If it's a helicopter, why is the stallSpeed set to 10?

aight, hata wrote a script that basically made it hover. I tried messing with the settings and i couldn't get it to work the way i wanted it to
thanks for the help anyway though!