rendered paste body// boat vehicle made by astro with help from many good resources :)
//exec("rtb/server/scripts/vehicles/dinghy.cs");
// commandtoserver('hoverspawnspot'); to place a resetting boat
datablock hoverVehicleData(dinghy)
{
spawnOffset = "0 0 6";
floatingGravMag = 1;
category = "Vehicles";
shapeFile = "~/data/shapes/bricks/raft.dts";
computeCRC = true;
renderWhenDestroyed = false;
drag = 0.0;
density = 0.3;
mountPose[0] = sitting;
numMountPoints = 3;
cameraMaxDist = 8.0;
cameraOffset = 0.75;
cameraLag = 5.5;
isProtectedMountPoint[0] = true;
explosionDamage = 0.5;
explosionRadius = 5.0;
lightOnly = 1;
maxDamage = 120;
destroyedLevel = 120;
isShielded = true;
rechargeRate = 0.7;
energyPerDamagePoint = 75;
maxEnergy = 150;
minJetEnergy = 15;
jetEnergyDrain = 1.3;
// Rigid Body
mass = 5;
bodyFriction = 0;
bodyRestitution = 0.0;
softImpactSpeed = 20; // Play SoftImpact Sound
hardImpactSpeed = 28; // Play HardImpact Sound
// Ground Impact Damage (uses DamageType::Ground)
minImpactSpeed = 1;
speedDamageScale = 0.010;
// Object Impact Damage (uses DamageType::Impact)
collDamageThresholdVel = 1;
collDamageMultiplier = 0.030;
dragForce = 1.9;
// dragForce = 25 / 45.0;
vertFactor = 0;//.125;
floatingThrustFactor = 0.35;//0.35;
mainThrustForce = 60;
reverseThrustForce = 50;
strafeThrustForce = 0;
turboFactor = 1.5;
brakingForce = 30;
brakingActivationSpeed = 30;
stabLenMin = 0;
stabLenMax = 0.5;
stabSpringConstant = 10;
stabDampingConstant = 30;
gyroDrag = 36; // 16
// gyroForce = 50
normalForce = 10;
restorativeForce = 100;
steeringForce = 30;
rollForce = 7;
pitchForce = 5;
//dustEmitter = dinghyDamageEmitter;
triggerDustHeight = 1.0;
dustHeight = 1.0;
//dustTrailEmitter = dinghyDamageEmitter;
dustTrailOffset = "0.0 -1.0 0.5";
triggerTrailHeight = 2.0;
dustTrailFreqMod = 15.0;
//
softSplashSoundVelocity = 10.0;
mediumSplashSoundVelocity = 20.0;
hardSplashSoundVelocity = 30.0;
exitSplashSoundVelocity = 10.0;
minMountDist = 4;
damageEmitter[0] = dinghyDamageEmitter;
//damageEmitter[1] = AssaultTankEmitter;
//damageEmitter[2] = AssaultTankEmitter;
damageEmitterOffset[0] = "0.0 -1.5 0.5 ";
damageLevelTolerance[0] = 0.3;
damageLevelTolerance[1] = 0.7;
numDmgEmitterAreas = 2;
splashEmitter[0] = playerFoamDropletsEmitter;
//splashEmitter[1] = playerFoamEmitter;
checkRadius = 8.5;
observeParameters = "1 1 1";
collisionTol = 1; // Collision distance tolerance
contactTol = 1; // Contact velocity tolerance
shieldEffectScale = "0.9375 1.125 0.6";
minTrailSpeed = 1; // The speed your contrail shows up at.
trailEmitter = dinghyDamageEmitter;
forwardJetEmitter = dinghyDamageEmitter;
};
function dinghy::onImpact(%this, %obj, %collidedObject, %vec, %vecLen)
{
}
function dinghy::onAdd(%this,%obj)
{
// Enable Mount Points
%obj.mountable = true;
}
function hoverVehicleData::create(%data, %team, %oldObj)
{
if(%oldObj $= "")
{
%obj = new hoverVehicle()
{
dataBlock = %data;
respawn = "0";
};
}
else
{
%obj = new hoverVehicle()
{
dataBlock = %data;
respawn = "0";
mountable = %oldObj.mountable;
disableMove = %oldObj.disableMove;
resetPos = %oldObj.resetPos;
deployed = %oldObj.deployed;
respawnTime = %oldObj.respawnTime;
marker = %oldObj;
};
}
%obj.mountable = true;
return(%obj);
}
function servercmdhoverspawnspot(%client,%type)
{
if(%type$="")
{
%type="dinghy";
}
//%pos = %client.player.getposition();
%pos = %client.player.gettransform();
%obj =new hoverVehicle()
{
dataBlock = %type;
position = %pos;
mountable = true;
};
%obj.mountable = true;
Schedule(1*1000,0,"vehiclereturner",%obj,%pos);
}
function vehiclereturner(%obj,%pos)
{
if(isobject(%obj))
{
if(!%obj.getcontrollingclient())
{
//%obj.setTransform(%pos@" 0 0 0");
%obj.setTransform(%pos);
Schedule(60*1000,0,"vehiclereturner",%obj,%pos);
}
else
{
Schedule(120*1000,0,"vehiclereturner",%obj,%pos);
}
}
}