I want to edit a vehicle to make it turn faster, but I don't know what to change, someone help me!
here's the coding:
datablock AudioProfile(arwingfireSound)
{
filename = "./laser.WAV";
description = AudioDefault3d;
preload = true;
};
datablock AudioProfile(arwinghitSound)
{
filename = "./laserhit.WAV";
description = AudioDefault3d;
preload = true;
};
datablock ParticleData(arwingExplosionRingParticle)
{
dragCoefficient = 8;
gravityCoefficient = -0.5;
inheritedVelFactor = 0.2;
constantAcceleration = 0.0;
lifetimeMS = 50;
lifetimeVarianceMS = 35;
textureName = "base/data/particles/dot";
spinSpeed = 500.0;
spinRandomMin = -500.0;
spinRandomMax = 500.0;
colors[0] = "0 1 1 1";
colors[1] = "1 1 1 1";
sizes[0] = 1;
sizes[1] = 0;
useInvAlpha = false;
};
datablock ParticleEmitterData(arwingExplosionRingEmitter)
{
lifeTimeMS = 50;
ejectionPeriodMS = 3;
periodVarianceMS = 0;
ejectionVelocity = 0;
velocityVariance = 0.0;
ejectionOffset = 0.0;
thetaMin = 89;
thetaMax = 90;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvance = false;
particles = "arwingExplosionRingParticle";
useEmitterColors = true;
};
datablock ExplosionData(arwinggunExplosion)
{
//explosionShape = "";
soundProfile = arwinghitsound;
lifeTimeMS = 150;
particleEmitter = arwingExplosionRingEmitter;
particleDensity = 5;
particleRadius = 0.2;
emitter[0] = arwingExplosionRingEmitter;
faceViewer = true;
explosionScale = "1 1 1";
shakeCamera = false;
camShakeFreq = "10.0 11.0 10.0";
camShakeAmp = "1.0 1.0 1.0";
camShakeDuration = 0.5;
camShakeRadius = 10.0;
// Dynamic light
lightStartRadius = 0;
lightEndRadius = 2;
lightStartColor = "0.3 0.6 0.7";
lightEndColor = "0 0 0";
};
datablock ProjectileData(ArwingProjectile)
{
projectileShapeName = "./arwingproj.dts";
directDamage = 50;
brickExplosionRadius = 0;
brickExplosionImpact = true; //destroy a brick if we hit it directly?
brickExplosionForce = 10;
brickExplosionMaxVolume = 1; //max volume of bricks that we can destroy
brickExplosionMaxVolumeFloati ng = 2; //max volume of bricks that we can destroy if they aren't connected to the ground
impactImpulse = 400;
verticalImpulse = 400;
explosion = arwinggunexplosion;
particleEmitter = ""; //bulletTrailEmitter;
muzzleVelocity = 90;
velInheritFactor = 1;
armingDelay = 00;
lifetime = 4000;
fadeDelay = 3500;
bounceElasticity = 0.5;
bounceFriction = 0.20;
isBallistic = false;
gravityMod = 0.0;
hasLight = false;
lightRadius = 3.0;
lightColor = "0 0 0.5";
};
datablock DebrisData(ArwingDebris)
{
emitters = "jeepDebrisTrailEmitter";
shapeFile = "./Arwing.dts";
lifetime = 3.0;
minSpinSpeed = -300.0;
maxSpinSpeed = 300.0;
elasticity = 0.5;
friction = 0.2;
numBounces = 1;
staticOnMaxBounce = true;
snapOnMaxBounce = false;
fade = true;
gravModifier = 2;
};
datablock ExplosionData(arwingFinalExplosion)
{
//explosionShape = "";
lifeTimeMS = 150;
soundProfile = vehicleExplosionSound;
emitter[0] = vehicleFinalExplosionEmitter3;
emitter[1] = vehicleFinalExplosionEmitter2;
particleEmitter = vehicleFinalExplosionEmitter;
particleDensity = 20;
particleRadius = 1.0;
debris = arwingDebris;
debrisNum = 1;
debrisNumVariance = 0;
debrisPhiMin = 0;
debrisPhiMax = 360;
debrisThetaMin = 0;
debrisThetaMax = 50;
debrisVelocity = 15;
debrisVelocityVariance = 3;
faceViewer = true;
explosionScale = "1 1 1";
shakeCamera = true;
camShakeFreq = "7.0 8.0 7.0";
camShakeAmp = "10.0 10.0 10.0";
camShakeDuration = 0.75;
camShakeRadius = 15.0;
// Dynamic light
lightStartRadius = 0;
lightEndRadius = 20;
lightStartColor = "0.45 0.3 0.1";
lightEndColor = "0 0 0";
//impulse
impulseRadius = 15;
impulseForce = 1000;
impulseVertical = 2000;
//radius damage
radiusDamage = 30;
damageRadius = 8.0;
//burn the players?
playerBurnTime = 5000;
};
datablock ProjectileData(arwingFinalExplosionProjectil e)
{
directDamage = 0;
radiusDamage = 0;
damageRadius = 0;
explosion = arwingFinalExplosion;
directDamageType = $DamageType::jeepExplosion;
radiusDamageType = $DamageType::jeepExplosion;
explodeOnDeath = 1;
armingDelay = 0;
lifetime = 10;
};
datablock WheeledVehicleData(ArwingVehicle)
{
category = "Vehicles";
displayName = " ";
shapeFile = "./arwing.dts"; //"~/data/shapes/skivehicle.dts"; //
emap = true;
minMountDist = 3;
numMountPoints = 1;
mountThread[0] = "sit";
ShootOnClick=1;
ShootOnClick_Hold=0;
ShootOnClick_ShootDelay=100;
ShootOnClick_ReShootDelay=140;
ShootOnClick_ProjectileCount=2;
ShootOnClick_RequiredSlot=0;
ShootOnClick_Sound=arwingfireSound;
ShootOnClick_Projectile[0]=arwingProjectile;
ShootOnClick_Position[0]="0 2.5 0";
ShootOnClick_Velocity[0]="220 0 0";
ShootOnClick_Scale[0]="1 1 1";
ShootOnClick_Projectile[1]=arwingProjectile;
ShootOnClick_Position[1]="0 -2.5 0";
ShootOnClick_Velocity[1]="220 0 0";
ShootOnClick_Scale[1]="1 1 1";
maxDamage = 100.00;
destroyedLevel = 200.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 = JeepTireEmitter; // All the tires use the same dust emitter
// 3rd person camera settings
cameraRoll = false; // Roll the camera with the vehicle
cameraMaxDist = 17; // Far distance from vehicle
cameraOffset = 7.5; // Vertical offset from camera mount point
cameraLag = 0.2; // 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;
numWheels = 0;
// Rigid Body
mass = 100;
density = 2.5;
drag = 0.9;
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 = 12000; //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 = 5000;
reverseThrust = 5000;
lift = 100;
maxForwardVel = 80;
maxReverseVel = 80;
horizontalSurfaceForce = 130; // Horizontal center "wing" (provides "bite" into the wind for climbing/diving and turning)
verticalSurfaceForce = 130;
rollForce = 8500;
yawForce = 2600;
pitchForce = 2600;
rotationalDrag = 0.9;
stallSpeed = 10;
// forwardThrust = 2000;
// reverseThrust = 2000;
// lift = 100;
// maxForwardVel = 70;
// maxReverseVel = 70;
// horizontalSurfaceForce = 100; // Horizontal center "wing" (provides "bite" into the wind for climbing/diving and turning)
// verticalSurfaceForce = 100;
// rollForce = 6000;
// yawForce = 6000;
// pitchForce = 4000;
// rotationalDrag = 0.5;
// stallSpeed = 10;
//
// forwardThrust = 2500;
// reverseThrust = 500;
// lift = 15000;
// maxForwardVel = 60;
// maxReverseVel = 10;
// horizontalSurfaceForce = 500; // Horizontal center "wing" (provides "bite" into the wind for climbing/diving and turning)
// verticalSurfaceForce = 500;
// rollForce = 5000;
// yawForce = 5000;
// pitchForce = 5000;
// rotationalDrag = 0.1;
// stallSpeed = 10;
splash = ArwingSplash;
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 = engineidleSound;
//squealSound = skidSound;
softImpactSound = slowImpactSound;
hardImpactSound = fastImpactSound;
//wheelImpactSound = slowImpactSound;
// explosion = VehicleExplosion;
justcollided = 0;
uiName = "Arwing";
rideable = true;
lookUpLimit = 0.3;
lookDownLimit = 0.3;
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;
burnTime = 10;
finalExplosionProjectile = arwingFinalExplosionProjectil e;
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
minArwingSpeed = 15;
// Advanced Steering
steeringAutoReturn = false;
steeringUseStrafeSteering = false;
};
datablock ParticleData(ArwingParticle)
{
dragCoefficient = 0;
windCoefficient = 0;
gravityCoefficient = 0;
inheritedVelFactor = 0.0;
constantAcceleration = 0.1;
spinRandomMin = -90;
spinRandomMax = 90;
lifetimeMS = 100;
lifetimeVarianceMS = 25;
textureName = "base/data/particles/cloud";
colors[0] = "0 1 1 1";
colors[1] = "1 1 1 1";
sizes[0] = 1.6;
sizes[1] = 1.2;
};
datablock ParticleEmitterData(ArwingEmitter)
{
ejectionPeriodMS = 1;
periodVarianceMS = 0;
ejectionVelocity = 0;
velocityVariance = 0;
ejectionOffset = 0.0;
thetaMin = 0;
thetaMax = 180;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvance = false;
particles = "ArwingParticle";
};
datablock ShapeBaseImageData(ArwingImage1)
{
shapeFile = "base/data/shapes/empty.dts";
emap = false;
mountPoint = 3;
rotation = "1 0 0 -90";
stateName[0] = "Ready";
stateTransitionOnTimeout[0] = "FireA";
stateTimeoutValue[0] = 0.01;
stateName[1] = "FireA";
stateTransitionOnTimeout[1] = "Done";
stateWaitForTimeout[1] = True;
stateTimeoutValue[1] = 10000;
stateEmitter[1] = ArwingEmitter;
stateEmitterTime[1] = 10000;
stateName[2] = "Done";
stateScript[2] = "onDone";
};
function Arwingvehicle::onadd(%this,%obj)
{
parent::onadd(%this,%obj);
arwingCheck(%obj);
}
function ArwingImage1::onDone(%this,%obj,%slot)
{
%obj.unMountImage(%slot);
}
function ArwingCheck(%obj)
{
// return;
if(!isObject(%obj))
return;
%speed = vectorLen(%obj.getVelocity());
if(%speed < %obj.dataBlock.minArwingSpeed)
{
if(%obj.getMountedImage(3) !$= "")
{
%obj.unMountImage(3);
}
}
else
{
if(%obj.getMountedImage(3) $= 0)
{
%obj.mountImage(ArwingImage1,3);
}
}
schedule(2000,0,"ArwingCheck",%obj);
}