All pastes #184104 Raw Edit

Stuff

public text v1 · immutable
#184104 ·published 2006-09-27 15:21 UTC
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);
		}
	}
}