Blockland Forums > Modification Help

Dragracer Vehicle Emitters

Pages: (1/3) > >>

Uxie:

I am currently working on The Exhaust emitters for my Dragracer. How do I get this to wotk for more than one joint? If only works on one of my exhaust pipes.

--- Code: ---datablock ParticleData(DragTireParticle)
{
   dragCoefficient      = 10;
   gravityCoefficient   = -0.15;
   inheritedVelFactor   = 0.2;
   constantAcceleration = 0.0;
   lifetimeMS           = 1250;
   lifetimeVarianceMS   = 150;
   textureName          = "base/data/particles/cloud";

spinSpeed = 50.0;
spinRandomMin = -500.0;
spinRandomMax = 500.0;

   colors[0]     = "5.0 5.0 5.0 0.2";
   colors[1]     = "5.0 5.0 5.0 0.0";
   sizes[0]      = 0.2;
   sizes[1]      = 3.9;

   useInvAlpha = true;
};

datablock ParticleEmitterData(DragTireEmitter)
{
   ejectionPeriodMS = 6;
   periodVarianceMS = 0;
   ejectionVelocity = 10;
   velocityVariance = 5.0;
   ejectionOffset   = 0.0;
   thetaMin         = 0;
   thetaMax         = 95;
   phiReferenceVel  = 0;
   phiVariance      = 360;
   overrideAdvance = false;
   particles = DragTireParticle;

   uiname = "Dragracer Tire Emitter";
};

datablock WheeledVehicleTire(DragBigTire)
{
   shapeFile = "./DragBigTire.dts";

mass = 10;
    radius = 1;
    staticFriction = 5;
   kineticFriction = 5;
   restitution = 0.5;

   // Spring that generates lateral tire forces
   lateralForce = 18000;
   lateralDamping = 4000;
   lateralRelaxation = 0.01;

   // Spring that generates longitudinal tire forces
   longitudinalForce = 14000;
   longitudinalDamping = 2000;
   longitudinalRelaxation = 0.01;
};
datablock WheeledVehicleTire(DragSmallTire)
{
   shapeFile = "./DragSmallTire.dts";

mass = 10;
    radius = 1;
    staticFriction = 5;
   kineticFriction = 5;
   restitution = 0.5;

   // Spring that generates lateral tire forces
   lateralForce = 20000;
   lateralDamping = 6000;
   lateralRelaxation = 0.01;

   // Spring that generates longitudinal tire forces
   longitudinalForce = 18000;
   longitudinalDamping = 4000;
   longitudinalRelaxation = 0.01;
};

datablock WheeledVehicleSpring(DragSmallSpring)
{
   // Wheel suspension properties
   length = 0.4; // Suspension travel
   force = 2500; //2000; // Spring force
   damping = 1500; //1500; // Spring damping
   antiSwayForce = 1; //1; // Lateral anti-sway force
};

datablock WheeledVehicleSpring(DragBigSpring)
{
   // Wheel suspension properties
   length = 0.4; // Suspension travel
   force = 1700; //1550; // Spring force
   damping = 1000; //1000; // Spring damping
   antiSwayForce = 1; //1; // Lateral anti-sway force
};

// Sounds //
////////////
datablock AudioProfile(fastImpactSound)
{
   filename    = "./fastimpact.WAV";
   description = AudioDefault3d;
   preload = true;
};
datablock AudioProfile(slowImpactSound)
{
   filename    = "./slowimpact.wav";
   description = AudioDefault3d;
   preload = true;
};


// Vehicle //
/////////////
datablock WheeledVehicleData(DragracerVehicle)
{
category = "Vehicles";
displayName = " ";
shapeFile = "./dragracer.dts";
emap = true;
minMountDist = 3;
   
   numMountPoints = 1;
   mountThread[0] = "sit";

maxDamage = 200.00;
destroyedLevel = 200.00;
speedDamageScale = 1.04;
collDamageThresholdVel = 20.0;
collDamageMultiplier   = 0.02;

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

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

// 3rd person camera settings
cameraRoll = false;         // Roll the camera with the vehicle
cameraMaxDist = 13;         // 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;

useEyePoint = false;

defaultTire = DragSmallTire;
defaultSpring = DragBigSpring;
flatTire = jeepflattire;
flatSpring = jeepflatspring;

   numWheels = 4;

// Rigid Body
mass = 300;
density = 5.0;
drag = 3.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 = 9000;
engineBrake = 2000;
brakeTorque = 8000;
maxWheelSpeed = 90;

rollForce = 300;
yawForce = 300;
pitchForce = 300;
rotationalDrag = 0.05;

   // Advanced Steering
   steeringAutoReturn = true;
   steeringAutoReturnRate = 3.0;
   steeringAutoReturnMaxSpeed = 4;
   steeringUseStrafeSteering = true;
   steeringStrafeSteeringRate = 0.1;

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



// Sounds
softImpactSound = slowImpactSound;
hardImpactSound = fastImpactSound;
//wheelImpactSound = slowImpactSound;

//   explosion = VehicleExplosion;
justcollided = 0;

   uiName = "Dragracer";
rideable = true;
lookUpLimit = 0.65;
lookDownLimit = 0.45;

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 = DragracerExplosionProjectile;
   initialExplosionOffset = 0;         //offset only uses a z value for now

   burnTime = 4000;

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

   minRunOverSpeed    = 20;   //how fast you need to be going to run someone over (do damage)
   runOverDamageScale = 30;   //when you run over someone, speed * runoverdamagescale = damage amt
   runOverPushScale   = 1000; //how hard a person you're running over gets pushed
};

function DragracerVehicle::onAdd(%this,%obj)
{
parent::onadd(%this,%obj);
%obj.mountable = true;

%obj.setWheelTire(0, DragSmallTire);
%obj.setWheelTire(1, DragSmallTire);
%obj.setWheelTire(2, DragBigTire);
%obj.setWheelTire(3, DragBigTire);

%obj.setWheelSpring(0, DragSmallSpring);
%obj.setWheelSpring(1, DragSmallSpring);
%obj.setWheelSpring(2, DragBigSpring);
%obj.setWheelSpring(3, DragBigSpring);

%obj.setWheelSteering(0,1);
%obj.setWheelSteering(1,1);
%obj.setWheelSteering(2,0);
%obj.setWheelSteering(3,0);

%obj.setWheelPowered(0,true);
    %obj.setWheelPowered(1,true);
%obj.setWheelPowered(2,true);
%obj.setWheelPowered(3,true);

   %obj.playthread(0,"propslow");

DragracerSmokeCheck(%obj);

}

datablock ParticleData(DragExhaustParticle)
{
   textureName          = "base/data/particles/cloud";
   dragCoefficient      = 0.0;
   windCoefficient      = 0.5;
   gravityCoefficient   = -0.5;
   inheritedVelFactor   = 0.2;
   lifetimeMS           = 300;
   lifetimeVarianceMS   = 0;
   useInvAlpha = true;
   spinRandomMin = 0.0;
   spinRandomMax = 0.0;

   colors[0]     = "0.7 0.5 0.2 0.7";
   colors[1]     = "0.7 0.7 0.7 0.07";
   colors[2]     = "0.75 0.75 0.75 0.0";

   sizes[0]      = 0.20;
   sizes[1]      = 0.25;
   sizes[2]      = 3;

   times[0]      = 0;
   times[1]      = 0.1;
   times[2]      = 1;
};

datablock ParticleEmitterData(DragExhaustEmitter)
{
   ejectionPeriodMS = 10;
   periodVarianceMS = 0;
   ejectionVelocity = 0.5;
   velocityVariance = 0.0;
   ejectionOffset   = 0.1;
   thetaMin         = 0;
   thetaMax         = 180;
   phiReferenceVel  = 0;
   phiVariance      = 360;
   overrideAdvance = false;
   particles = "DragExhaustParticle";
};

datablock ShapeBaseImageData(DragExhaustImage1)
{
   shapeFile = "base/data/shapes/empty.dts";
emap = false;

mountPoint = 6;
   rotation = "1 0 0 -90";

stateName[0] = "Ready";
stateTransitionOnTimeout[0] = "FireA";
stateTimeoutValue[0] = 0.01;

stateName[1] = "FireA";
stateEmitter[1] = DragExhaustEmitter;
stateEmitterTime[1] = 10000;

};

function DragracerSmokeCheck(%obj)
{
  %obj.mountImage(DragExhaustImage1,2);


}



--- End code ---


spartan101:

Wrong section goes in coding help.

Altered:


--- Quote from: spartan101 on September 21, 2010, 08:57:22 PM ---Wrong section goes in coding help.

--- End quote ---

No, this is General Modification Help.
This is in the right topic.

Uxie:

Finally got some replies. I've been stuck trying to do this for a while.

alex dude:


--- Quote from: Uxie on September 18, 2010, 03:01:19 PM ---I also tried ejectPoint0
--- End quote ---
If you have used that joint you need to add that to the emitter in the script.

Pages: (1/3) > >>

Go to full version