DAZZLE'S UPGRADE PACK

If you haven't already done so, upgrade your game by downloading Dazzle's all-in-one upgrade pack. It comes with everything you need for today's servers. Does your blue bar freeze when joining servers? Do you lag in games? Do you get an annoying siren in Phobik's Servers? This is what you need. CLICK HERE TO DOWNLOAD.

Special.cs

Modding questions, answers, help.....

Moderators: Warfare, Admin, Moderator

Post Reply
00E
Need Major Repair
Need Major Repair
Posts: 1659
Joined: Sat Nov 01, 2008 8:38 am
Location: Pennsylvania
Contact:

Special.cs

Post by 00E »

Hey I duplicated my Special.cs but I did it after I made a change which now I don't know how to fix, so could you give me the original special.cs


Thx,
00E
Has Been Playing TT Since February 18, 2004
Mods Made: 17
TT2 Supporter
User avatar
Taylor
Need Major Repair
Need Major Repair
Posts: 1201
Joined: Thu Jan 01, 2009 8:34 pm
Location: ERROR

Re: Special.cs

Post by Taylor »

Go to CB's Downloads Topic in Internet Explorer (I know, you don't normally use it on mac), then go to the bottom of the first post and click that link. there are lots of downloads there, including special.cs.

hope you find it (and i hope you have IE)
I signed up on New Years!
Macs Rule!
Proud BMT Member
Image
00E
Need Major Repair
Need Major Repair
Posts: 1659
Joined: Sat Nov 01, 2008 8:38 am
Location: Pennsylvania
Contact:

Re: Special.cs

Post by 00E »

Can't find where you are talking about and no I do not have Internet Explorer
Has Been Playing TT Since February 18, 2004
Mods Made: 17
TT2 Supporter
User avatar
Taylor
Need Major Repair
Need Major Repair
Posts: 1201
Joined: Thu Jan 01, 2009 8:34 pm
Location: ERROR

Re: Special.cs

Post by Taylor »

you need Internet Explorer.

the link is here: http://www.planetthinktanks2.com/supra/ ... -other.asp
I signed up on New Years!
Macs Rule!
Proud BMT Member
Image
00E
Need Major Repair
Need Major Repair
Posts: 1659
Joined: Sat Nov 01, 2008 8:38 am
Location: Pennsylvania
Contact:

Re: Special.cs

Post by 00E »

Well I don;t have it Boohoo can som1 just post an original one cause mine is messed up
Has Been Playing TT Since February 18, 2004
Mods Made: 17
TT2 Supporter
User avatar
Dazzle
Evil Site Admin
Evil Site Admin
Posts: 1320
Joined: Fri Dec 29, 2006 6:59 am
Location: London, England
Contact:

Re: Special.cs

Post by Dazzle »

Code: Select all

datablock AudioProfile(DefaultBoom)
{
   filename = "~/data/sound/explode.wav";
   description = "AudioDefault3DMed";
	preload = true;
};

datablock AudioProfile(TankBoom)
{
   filename = "~/data/sound/explodeHit.wav";
   description = "AudioDefault3DMed";
	preload = true;
};

datablock AudioProfile(OwnTankBoom)
{
   filename = "~/data/sound/explodeHitYou.wav";
   description = "AudioDefault3DMed";
	preload = true;
};

datablock AudioProfile(SplashBoom)
{
   filename = "~/data/sound/explodeArea.wav";
   description = "AudioDefault3D";
	preload = true;
};

datablock AudioProfile(BounceBounce)
{
   filename = "~/data/sound/bounceBounce.wav";
   description = "AudioDefault3D";
	preload = true;
};

datablock AudioProfile(RockBoom)
{
   filename = "~/data/sound/explodeVolcano.wav";
   description = "AudioDefault3DMed";
	preload = true;
};

datablock AudioProfile(RockBounce)
{
   filename = "~/data/sound/bounceVolcano.wav";
   description = "AudioDefault3D";
	preload = true;
};

datablock AudioProfile(ActivateSpeedy)
{
   filename = "~/data/sound/vocSpeedy.wav";
   description = "Audio2D";
	preload = true;
};

datablock AudioProfile(ActivateBounce)
{
   filename = "~/data/sound/vocBounce.wav";
   description = "Audio2D";
	preload = true;
};

datablock AudioProfile(ActivateSplash)
{
   filename = "~/data/sound/vocArea.wav";
   description = "Audio2D";
	preload = true;
};

datablock AudioProfile(ActivateHeal)
{
   filename = "~/data/sound/vocHealth.wav";
   description = "Audio2D";
	preload = true;
};

datablock AudioProfile(ActivateReload)
{
   filename = "~/data/sound/vocReload.wav";
   description = "Audio2D";
	preload = true;
};

datablock AudioProfile(PupOnSound)
{
   filename = "~/data/sound/activatePup.wav";
   description = "AudioDefault3DMed";
	preload = true;
};

datablock AudioProfile(PupOffSound)
{
   filename = "~/data/sound/pickupPup.wav";
   description = "AudioDefault3DMed";
	preload = true;
};

datablock AudioProfile(ReloadSound)
{
   filename = "~/data/sound/zap.wav";
   description = "AudioDefault3DMed";
	preload = true;
};

datablock AudioProfile(EruptSound)
{
   filename = "~/data/sound/erupt.wav";
   description = "Audio2D";
	preload = true;
};

datablock AudioProfile(ZoomSound)
{
   filename = "~/data/sound/vocZoom.wav";
   description = "AudioDefault3DMed";
	preload = true;
};

datablock AudioProfile(BlowSound)
{
   filename = "~/data/sound/vent.wav";
   description = "AudioDefault3D";
   preload = true;
};

// SoftCollSound also used by tankFx.cs
datablock AudioProfile(SoftCollSound)
{
   filename = "~/data/sound/softColl.wav";
   description = "AudioDefault3DMed";
	preload = true;
};

datablock ExplosionData(DefaultExplosion)
{
   startScale = 0.05;         // per side, in meters
   endScale = 0.8;            // per side, in meters
   durationScale = 200.0;     // in milliseconds
   resource = "~/data/shapes/tanks/TankExplosion02.png";
   sound = "DefaultBoom";
};

datablock ExplosionData(DefaultTankExplosion)
{
   startScale = 0.05;         // per side, in meters
   endScale = 2.0;            // per side, in meters
   durationScale = 1600.0;     // in milliseconds
   resource = "~/data/shapes/tanks/DefaultExplosion.dts";
   sound = "TankBoom";
};

datablock ExplosionData(DefaultOwnTankExplosion)
{
   startScale = 0.05;         // per side, in meters
   endScale = 2.0;            // per side, in meters
   durationScale = 1600.0;     // in milliseconds
   resource = "~/data/shapes/tanks/DefaultExplosion.dts";
   sound = "OwnTankBoom";
};

datablock ExplosionData(SpeedyExplosion : DefaultExplosion)
{
   resource = "~/data/shapes/tanks/TankExplosion02.png";
};

datablock ExplosionData(SpeedyTankExplosion : DefaultTankExplosion)
{
   resource = "~/data/shapes/tanks/DefaultExplosion.dts";
};

datablock ExplosionData(SpeedyOwnTankExplosion : DefaultOwnTankExplosion)
{
   resource = "~/data/shapes/tanks/DefaultExplosion.dts";
};

datablock ExplosionData(BounceExplosion)
{
   startScale = 0.05;         // per side, in meters
   endScale = 2.15;           // per side, in meters
   durationScale = 800.0;     // in milliseconds
   resource = "~/data/shapes/tanks/BounceExplosion.dts";
   sound = "DefaultBoom";
};

datablock ExplosionData(BounceTankExplosion)
{
   startScale = 0.05;         // per side, in meters
   endScale = 2.0;            // per side, in meters
   durationScale = 800.0;     // in milliseconds
   resource = "~/data/shapes/tanks/BounceExplosion.dts";
   sound = "TankBoom";
};

datablock ExplosionData(BounceOwnTankExplosion)
{
   startScale = 0.05;         // per side, in meters
   endScale = 2.0;            // per side, in meters
   durationScale = 800.0;     // in milliseconds
   resource = "~/data/shapes/tanks/BounceExplosion.dts";
   sound = "OwnTankBoom";
};

datablock ExplosionData(BounceBump)
{
   startScale = 0.05;         // per side, in meters
   endScale = 1.35;           // per side, in meters
   durationScale = 200.0;     // in milliseconds
   resource = "~/data/shapes/tanks/BounceBump.png";
   sound = "BounceBounce";
};

datablock ExplosionData(RockExplosion)
{
   startScale = 0.05;         // per side, in meters
   endScale = 20.5;           // per side, in meters
   durationScale = 300.0;     // in milliseconds
   resource = "~/data/shapes/Common/VolcanoExplosion.png";
   sound = "RockBoom";
};

datablock ExplosionData(RockBump)
{
   startScale = 0.05;         // per side, in meters
   endScale = 10.15;          // per side, in meters
   durationScale = 200.0;     // in milliseconds
   resource = "~/data/shapes/Common/VolcanoBump.png";
   sound = "RockBounce";
};

datablock ExplosionData(SplashExplosion)
{
   startScale = 0.05;         // per side, in meters
   endScale = 2.0;            // per side, in meters
   durationScale = 800.0;     // in milliseconds
   resource = "~/data/shapes/tanks/AreaExplosion.dts";
   sound = "SplashBoom";
};

datablock ParticleData(Rocket)
{
   textureName          = "~/data/shapes/tanks/smoke.png";
   dragCoefficient      = 1.0;
   gravityCoefficient   = -0.2;
   inheritedVelFactor   = 0.3;
   constantAcceleration = 0.0;
   lifetimeMS           = 2000;
   lifetimeVarianceMS   = 500;
   useInvAlpha          = true;
   spinRandomMin        = -90.0;
   spinRandomMax        = 500.0;
   colors[0]     = "0.56 0.36 0.26 1.0";
   colors[1]     = "0.56 0.36 0.26 1.0";
   colors[2]     = "0.36 0.21 0.21 0.4";
   colors[3]     = "0 0 0 0";
   sizes[0]      = 0.35;
   sizes[1]      = 0.85;
   sizes[2]      = 1.95;
   sizes[3]      = 2.95;
   times[0]      = 0.0;
   times[1]      = 0.2;
   times[2]      = 0.5;
   times[3]      = 1.0;
};

datablock ParticleEmitterData(RocketEmitter)
{
   ejectionPeriodMS = 28;
   periodVarianceMS = 27;
   ejectionVelocity = 1.5;
   velocityVariance = 0.5;
   ejectionOffset   = 0.0;
   thetaMin         = 90;
   thetaMax         = 90;
   phiReferenceVel  = 0;
   phiVariance      = 360;
   overrideAdvances = false;
   particles = "Rocket";

};

datablock ParticleData(Rocksmoke)
{
   textureName          = "~/data/shapes/tanks/smoke.png";
   dragCoefficient      = 1.0;
   gravityCoefficient   = -0.2;
   inheritedVelFactor   = 0.3;
   constantAcceleration = 0.0;
   lifetimeMS           = 1200;
   lifetimeVarianceMS   = 500;
   useInvAlpha          = true;
   spinRandomMin        = -90.0;
   spinRandomMax        = 500.0;
   colors[0]     = "0.56 0.36 0.26 1.0";
   colors[1]     = "0.56 0.36 0.26 1.0";
   colors[2]     = "0.36 0.21 0.21 0.4";
   colors[3]     = "0 0 0 0";
   sizes[0]      = 1.75;
   sizes[1]      = 2.55;
   sizes[2]      = 3.65;
   sizes[3]      = 4.95;
   times[0]      = 0.0;
   times[1]      = 0.2;
   times[2]      = 0.5;
   times[3]      = 1.0;
};

datablock ParticleEmitterData(RocksmokeEmitter)
{
   ejectionPeriodMS = 60;
   periodVarianceMS = 27;
   ejectionVelocity = 1.5;
   velocityVariance = 0.5;
   ejectionOffset   = 0.0;
   thetaMin         = 90;
   thetaMax         = 90;
   phiReferenceVel  = 0;
   phiVariance      = 360;
   overrideAdvances = false;
   particles = "Rocksmoke";

};

datablock ParticleData(Smoke)
{
   textureName          = "~/data/shapes/tanks/smoke.png";
   dragCoefficient      = 1.0;
   gravityCoefficient   = -0.2;
   inheritedVelFactor   = 0.3;
   constantAcceleration = 0.0;
   lifetimeMS           = 2000;
   lifetimeVarianceMS   = 500;
   useInvAlpha          = true;
   spinRandomMin        = -90.0;
   spinRandomMax        = 500.0;
   colors[0]     = "0.56 0.36 0.26 1.0";
   colors[1]     = "0.56 0.36 0.26 1.0";
   colors[2]     = "0.36 0.21 0.21 0.4";
   colors[3]     = "0 0 0 0";
   sizes[0]      = 0.52;
   sizes[1]      = 1.25;
   sizes[2]      = 1.75;
   sizes[3]      = 2.95;
   times[0]      = 0.0;
   times[1]      = 0.2;
   times[2]      = 0.5;
   times[3]      = 1.0;
};

datablock ParticleEmitterData(SmokeEmitter)
{
   ejectionPeriodMS = 73;
   periodVarianceMS = 50;
   ejectionVelocity = 1.5;
   velocityVariance = 0.5;
   ejectionOffset   = 0.0;
   thetaMin         = 90;
   thetaMax         = 90;
   phiReferenceVel  = 0;
   phiVariance      = 360;
   overrideAdvances = false;
   particles = "Smoke";
};

datablock ReticleData(DefaultReticle)
{
   // Note: reticle position is based on projectile speed, so position is determined by time
   //dts = "~/data/shapes/tanks/ring.dts";
   bmp = "~/data/shapes/tanks/reticle.png";
   size = 1.2;           // scale of reticle shape when using dts
   startTime = 0.08;     // time (in seconds) to first draw reticle
   timeStep = 0.18;      // time step (in seconds)
   tickCount = 15;       // number of reticle ticks
   spacingExponent = 1.4; // reticle tick spacing (1=linear, over 1 = bunched near start)
   smoothNear = 0.02;    // 0->no smoothing, 1->so smooth camera doesn't move
   smoothFar = 0.63;      // 0->no smoothing, 1->so smooth camera doesn't move
   smoothExponent = 0.2; // 1=linear interpolation between near and far
                                // larger numbers result in bunching values around near value
                                // smaller numbers result in buncing values around far value

   // reticle animation parameters...experimental
   doAnim = false;
   animBmp = "~/data/shapes/tanks/reticle.png";
   animTime = 750;       // round-trip in milliseconds
   animSize = 0.3;       // size of animated bmp

   doSpot = true;
   spotBmp = "~/data/shapes/tanks/reticleSpot.png";
   spotSizeNear = 0.72;
   spotSizeFar = 2.2;
};

datablock ReticleData(LightReticle : DefaultReticle)
{
   startTime = 0.10;
   timeStep = 0.20;
   tickCount = 15;      
   spacingExponent = 1.5;
   smoothNear = 0.02;    
   smoothFar = 0.83;     
   smoothExponent = 0.2; 
};

datablock ReticleData(HeavyReticle : DefaultReticle)
{
   startTime = 0.06;     
   timeStep = 0.16;
   tickCount = 15;
   smoothNear = 0.02;    
   smoothFar = 0.63;     
   smoothExponent = 0.2;  
};

datablock ReticleData(SpeedyReticle : DefaultReticle)
{
   // Note: reticle position is based on projectile speed, so position is determined by time
   bmp = "~/data/shapes/tanks/Speedyreticle.png";
   size = 1.2;           // size of reticle in meters
   startTime = 0.04;     // time (in seconds) to first draw reticle
   timeStep = 0.08;      // time step (in seconds)
   spacingExponent = 1.6; // reticle tick spacing (1=linear, over 1 = bunched near start)

   // reticle animation parameters...experimental
   doAnim = false;
   animBmp = "~/data/shapes/tanks/Speedyreticle.png";
   animTime = 750;       // round-trip in milliseconds
   animSize = 0.3;       // size of animated bmp
};

datablock ReticleData(BounceReticle : DefaultReticle)
{
   // Note: reticle position is based on projectile speed, so position is determined by time
   bmp = "~/data/shapes/tanks/Bouncereticle.png";
   size = 1.2;           // size of reticle in meters
   startTime = 0.21;     // time (in seconds) to first draw reticle
   timeStep = 0.6;      // time step (in seconds)
   spacingExponent = 1.0; // reticle tick spacing (1=linear, over 1 = bunched near start)
   smoothNear = 0.02;    // 0->no smoothing, 1->so smooth camera doesn't move
  
   // reticle animation parameters...experimental
   doAnim = false;
   animBmp = "~/data/shapes/tanks/Bouncereticle.png";
   animTime = 750;       // round-trip in milliseconds
   animSize = 0.3;       // size of animated bmp
};

datablock ReticleData(OtherReticle : DefaultReticle)
{
   // Note: reticle position is based on projectile speed, so position is determined by time
   bmp = "~/data/shapes/tanks/Splashreticle.png";
   size = 1.2;           // size of reticle in meters
   startTime = 0.21;     // time (in seconds) to first draw reticle
   timeStep = 0.6;      // time step (in seconds)
   spacingExponent = 1.0; // reticle tick spacing (1=linear, over 1 = bunched near start)
   smoothNear = 0.02;    // 0->no smoothing, 1->so smooth camera doesn't move
  
   // reticle animation parameters...experimental
   doAnim = false;
   animBmp = "~/data/shapes/tanks/Splashreticle.png";
   animTime = 750;       // round-trip in milliseconds
   animSize = 0.3;       // size of animated bmp
};

datablock ProjectileData(DefaultProjectile)
{
   velocity = 85.0;           // meters per second
   inheritVelocity = 0.97;    // how much of shooters velocity to inherit
   numBounce = 0;             // usually 0
   splashArea = 0.0;          // usually 0
   count = 145;               // how many shots per clip?
   saveOldCartridge = false;  // chuck old cartridge or keep it around
   canSave = true;            // can this cartridge be saved if another comes along?
   reloadTime = 150;          // in milliseconds
   burstDelay = 1000;         // milliseconds until next burst if button held down
   burstCount = 5;            // number of projectiles to fire per burst
   synchTime = 1000;          // synch over this many milliseconds
   synchBefore = 500;         // synch if not older than this in milliseconds
   damage = 1;                // usually 1
   gravityScale = 0.4;        //
   sizeScale = 0.4;           // scale of projectile (meters for bitmaps)
   resource = "~/data/shapes/tanks/DefaultProjectile.png"; // shape or bitmap
   tankExplosion = "DefaultTankExplosion";   // datablock for explosion
   ownTankExplosion = "DefaultOwnTankExplosion";  // datablock for explosion
   bounceExplosion = "DefaultExplosion"; // datablock for explosion
   otherExplosion = "DefaultExplosion";  // datablock for explosion
   reticle = "DefaultReticle";
};

datablock ProjectileData(LightProjectile : DefaultProjectile)
{
   velocity = 77.0;          
   inheritVelocity = 1.0;   
   count = 220;              
   reloadTime = 125;         
   burstDelay = 1000;        
   burstCount = 8;           
   damage = 0.87;            
   gravityScale = 0.4;       
   sizeScale = 0.4;          
   reticle = "LightReticle";
};

datablock ProjectileData(HeavyProjectile : DefaultProjectile)
{
   velocity = 120.0;          
   inheritVelocity = 0.96;    
   count = 180;               
   reloadTime = 180;          
   burstDelay = 1000;         
   burstCount = 3;            
   damage = 1.4;             
   gravityScale = 0.5;        
   sizeScale = 0.4;           
   reticle = "HeavyReticle";
};


datablock ProjectileData(SpeedyProjectile)
{
   velocity = 190.0;          // meters per second
   inheritVelocity = 0.97;    // how much of shooters velocity to inherit
   numBounce = 0;             // usually 0
   splashArea = 0.0;          // usually 0
   count = 35;                // how many shots per clip?
   saveOldCartridge = true;   // chuck old cartridge or keep it around
   canSave = false;           // can this cartridge be saved if another comes along?
   reloadTime = 100;          // in milliseconds
   burstDelay = 1000;         // milliseconds until next burst if button held down
   burstCount = 5;            // number of projectiles to fire per burst
   synchTime = 1000;          // synch over this many milliseconds
   synchBefore = 500;         // synch if not older than this in milliseconds
   damage = 1;                // usually 1
   gravityScale = 0.3;        //
   sizeScale = 0.6;           // scale of projectile (meters for bitmaps)
   resource = "~/data/shapes/tanks/SpeedyProjectile.png";    // shape or bitmap
   tankExplosion = "DefaultTankExplosion";   // datablock for explosion
   ownTankExplosion = "DefaultTankExplosion";  // datablock for explosion
   bounceExplosion = "DefaultExplosion";       // datablock for explosion
   otherExplosion = "DefaultExplosion";  // datablock for explosion
   reticle = "SpeedyReticle";
};

datablock ProjectileData(BounceProjectile)
{
   velocity = 35.0;             // meters per second
   inheritVelocity = 0.93;    // how much of shooters velocity to inherit
   numBounce = 8;             // usually 0
   bounceFactor = 0.5;
   splashArea = 2.0;          // usually 0
   count = 45;                // how many shots per clip?
   saveOldCartridge = true;   // chuck old cartridge or keep it around
   canSave = false;           // can this cartridge be saved if another comes along?
   reloadTime = 150;          // in milliseconds
   burstDelay = 1000;         // milliseconds until next burst if button held down
   burstCount = 4;            // number of projectiles to fire per burst
   synchTime = 1000;          // synch over this many milliseconds
   synchBefore = 500;         // synch if not older than this in milliseconds
   damage = 1;                // usually 1
   gravityScale = 1.7;        //
   sizeScale = 0.6;           // scale of projectile (meters for bitmaps)
   resource = "~/data/shapes/tanks/bounceprojectile.png";             // shape or bitmap
   tankExplosion = "BounceTankExplosion";   // datablock for explosion
   ownTankExplosion = "BounceOwnTankExplosion";  // datablock for explosion
   bounceExplosion = "BounceBump"; // datablock for explosion
   otherExplosion = "BounceExplosion";  // datablock for explosion
   reticle = "BounceReticle";
};

datablock ProjectileData(BrainProjectile)
{
   velocity = 21.0;           // meters per second
   inheritVelocity = 1.00;    // how much of shooters velocity to inherit
   numBounce = 8;             // usually 0
   bounceFactor = 0.5;
   splashArea = 0.0;          // usually 0
   count = 0;                 // how many shots per clip?
   saveOldCartridge = false;  // chuck old cartridge or keep it around
   canSave = false;           // can this cartridge be saved if another comes along?
   reloadTime = 0;            // in milliseconds
   burstDelay = 0;            // milliseconds until next burst if button held down
   burstCount = 0;            // number of projectiles to fire per burst
   synchTime = 0;             // synch over this many milliseconds
   synchBefore = 0;           // synch if not older than this in milliseconds
   damage = 0;                // usually 1
   gravityScale = 0.0;        //
   sizeScale = 0.2;           // scale of projectile (meters for bitmaps)
   resource = "";             // shape or bitmap
   tankExplosion = "";   // datablock for explosion
   bounceExplosion = ""; // datablock for explosion
   otherExplosion = "";  // datablock for explosion
   reticle = "";
   emitter = "RocketEmitter";
};

datablock ProjectileData(SplashProjectile)
{
   velocity = 40.0;           // meters per second
   inheritVelocity = 1.00;    // how much of shooters velocity to inherit
   numBounce = 0;             // usually 0
   splashArea = 5.0;          // usually 0
   count = 10;                // how many shots per clip?
   saveOldCartridge = true;   // chuck old cartridge or keep it around
   canSave = false;           // can this cartridge be saved if another comes along?
   reloadTime = 1000;         // in milliseconds
   burstDelay = 1000;         // milliseconds until next burst if button held down
   burstCount = 1;            // number of projectiles to fire per burst
   synchTime = 1000;          // synch over this many milliseconds
   synchBefore = 500;         // synch if not older than this in milliseconds
   damage = 3;                // usually 1
   gravityScale = 0.5;        //
   sizeScale = 0.7;           // scale of projectile (meters for bitmaps)
   resource = "~/data/shapes/tanks/AreaProjectile.png";             // shape or bitmap
   tankExplosion = "SplashExplosion";   // datablock for explosion
   ownTankExplosion = "SplashExplosion";   // datablock for explosion
   bounceExplosion = "DefaultExplosion"; // datablock for explosion
   otherExplosion = "SplashExplosion";  // datablock for explosion
   reticle = "OtherReticle";
};

datablock ProjectileData(VolcanoRock)
{
   velocity = 63;             // meters per second
   inheritVelocity = 0.0;     // how much of shooters velocity to inherit
   numBounce = 5;             // usually 0
   bounceFactor = 0.3;
   splashArea = 5.0;          // usually 0
   count = 1;                 // how many shots per clip?
   saveOldCartridge = true;   // chuck old cartridge or keep it around
   canSave = true;            // can this cartridge be saved if another comes along?
   reloadTime = 250;          // in milliseconds
   burstDelay = 1000;         // milliseconds until next burst if button held down
   burstCount = 1;            // number of projectiles to fire per burst
   synchTime = 1000;          // synch over this many milliseconds
   synchBefore = 500;         // synch if not older than this in milliseconds
   damage = 3;                // usually 1
   gravityScale = 0.75;        //
   sizeScale = 1.0;           // scale of projectile (meters for bitmaps)
   maxRotation = 25.0;         // this many radians per sec at max X-Y velocity
   resource = "~/data/shapes/common/volcanorock01.dts";             // shape or bitmap
   tankExplosion = "RockExplosion";   // datablock for explosion
   ownTankExplosion = "RockExplosion";   // datablock for explosion
   bounceExplosion = "RockBump"; // datablock for explosion
   otherExplosion = "RockExplosion";  // datablock for explosion
   reticle = "OtherReticle";
   emitter = "RocksmokeEmitter";
};

datablock PowerUpData(BrainData)
{
   category = "PowerUp";
   shape = "~/data/shapes/tanks/brain.dts";
   type = "brain";
   shadow = true;
   shadowAnimation = true;
   startOn = true;
   minOff = 120000;
   maxOff = 120000;

   sound = "PupOnSound";
   soundOff = "PupOffSound";
};

datablock PowerUpData(TestPowerup)
{
   category = "PowerUp";
   shape = "~/data/shapes/common/powerup.dts";
   type = "weapon";
   minOff = 60000;
   maxOff = 90000;
   startOn = false;
   shadow = true;
   shadowAnimation = true;
   aiPickup = true;

   sound = "PupOnSound";
   soundOff = "PupOffSound";
};

datablock PowerUpData(Heal)
{
   category = "PowerUp";
   shape = "~/data/shapes/common/health.dts";
   type = "health";
   minOff = 90000;
   maxOff = 120000;
   startOn = false;
   shadow = true;
   shadowAnimation = true;
   aiPickup = true;

   sound = "PupOnSound";
   soundOff = "PupOffSound";
};

datablock PowerUpData(Reload)
{
   category = "PowerUp";
   shape = "~/data/shapes/common/recharge.dts";
   userseq1 = "activate";
   type = "ammo";
   shadow = true;
   staticShadow = true;

   soundOff = "ReloadSound";
};

datablock BoostData(TestBoost)
{
   category = "Boost";
   shape = "~/data/shapes/common/boostpad.dts";
   type = "additive";
   shadow = false;
   advanceDelayOnEnter = 200;
   numStates = 4;

   stateName1 = "moe";
   velocity1 = 24.5;
   minDuration1 = 0;

   stateName2 = "larry";
   velocity2 = 24.5;
   minDuration2 = 0;

   stateName3 = "curly";
   velocity3 = 24.5;
   minDuration3 = 0;

   stateName4 = "schemp";
   velocity4 = 24.5;
   minDuration4 = 0;

   sound = "ZoomSound";
};

datablock BoostData(Boost4 : TestBoost)
{
   numStates = 4;
};

datablock BoostData(Boost1 : TestBoost)
{
   numStates = 1;
};

datablock BoostData(TestJump)
{
   category = "Boost";
   shape = "~/data/shapes/common/jumppad.dts";
   type = "additive";
   shadow = false;

   numStates = 1;
   stateName1 = "";
   velocity1 = 16.5;

   sound = "BlowSound";
};

datablock VolcanoData(VolcanoDB)
{
   category = "Volcano";
   shadow = false;
   staticShadow = true;
   shape = "~/data/shapes/common/volcano.dts";

   numZones = 5;
   minAttackDelay = 15000;
   maxAttackDelay = 25000;
   minAttackRocks = 3;
   maxAttackRocks = 20;

   zoneName1 = "target1";
   zoneWeight1 = 1;
   zoneFocusWeight1 = 4;
   zoneRadius1 = 15;

   zoneName2 = "target2";
   zoneWeight2 = 1;
   zoneFocusWeight2 = 4;
   zoneRadius2 = 15;

   zoneName3 = "target3";
   zoneWeight3 = 1;
   zoneFocusWeight3 = 4;
   zoneRadius3 = 15;

   zoneName4 = "target4";
   zoneWeight4 = 1;
   zoneFocusWeight4 = 4;
   zoneRadius4 = 15;

   zoneName5 = "target5";
   zoneWeight5 = 1;
   zoneFocusWeight5 = 4;
   zoneRadius5 = 15;

   projectile = "VolcanoRock";
   sound = "EruptSound";
};

datablock FlagData(DefaultFlag)
{
   category = "Flags";
   shapeFile = "~/data/shapes/common/scrumball.dts";

   bounceTerrain = 0.7;       // 0->complete stop 1->full reverse
   bounceStatic = 0.5;       // 0->complete stop 1->full reverse
   frictionTerrain = 0.4;     // 0->no friction, 1->sticky

   unstuckTime = 2500;       // time (in ms) tank can be stuck before getting unstuck boost
   unstuckBoost = 10;        // velocity boost in m/s

   // suspension
   springRange = 0.3;
   springVelScale = 1.0;
   springCorrectScale1 = 2.0;
   springCorrectScale2 = 0.99;

   // sound
   hardCollSound = "SoftCollSound";              // sound to play when hitting other tank hard
   hardCollVel = 1;                // must be going this fast (m/s) to make hard sound
   softCollSound = "";              // soft sound
   softCollVel = 1;                 // speed to make soft sound
   collISI = 200;                   // don't replay sooner than this (in ms)
   snagFlagSound = "PupOffSound";

   noPickup = false;
};

datablock PowerUpData(DefaultGoal)
{
   category = "Goal";
   shape = "~/data/shapes/common/scrumgoal.dts";
   type = "goal";
   minOff = 0;
   maxOff = 0;
   startOn = true;
   shadow = false;
   shadowAnimation = false;

   sound = "PupOnSound";
   soundOff = "";
};

$NumPupTypes = 3;
$pupTypes[0] = "SpeedyProjectile";
$pupTypes[1] = "BounceProjectile";
$pupTypes[2] = "SplashProjectile";

$pupSnds[0] = "ActivateSpeedy";
$pupSnds[1] = "ActivateBounce";
$pupSnds[2] = "ActivateSplash";

function PowerUpData::onEnter(%db,%this,%tank)
{
   //echo(%tank.client.name @ " enters powerup " @ %this.getId() @ " of type " @ %db.type);
   if (%db.type $= "weapon")
   {
      %choice = getRandom($NumPupTypes-1);
      %tank.setProjectile($pupTypes[%choice]);
      if (getRandom(10)<=2 && !$Game::SinglePlayer)
         %this.schedule(5000,"setDatablock","Heal");

      // schedule say $pupSnds[%choice]
      if (isObject(%tank.client))
         %tank.client.schedule(1000,"play2D",$pupSnds[%choice]);
   }
   else if (%db.type $= "health")
   {
      %tank.hurtMe(-100);
      %this.schedule(5000,"setDatablock","TestPowerup");

      // schedule say Heal
      if (isObject(%tank.client))
         %tank.client.schedule(1000,"play2D","ActivateHeal");
   }
   else if (%db.type $= "ammo")
   {
      %this.playUserThread(1,1,true);
      %tank.setProjectile(%tank.getDataBlock().defaultProjectile);

      // schedule say Reload
      if (isObject(%tank.client))
         %tank.client.schedule(1000,"play2D","ActivateReload");
   }
   else if (%db.type $= "goal")
   {
      if ($Game::MissionType $= "Scrum")
      {
         if (%tank.getFlag() != -1)
         {
            serverPlay3D(PupOffSound,%this.getTransform());
            %flag = %tank.getFlag();
            %flag.clearMount();
            %flag.setTransform(VectorAdd(pickSpawnPoint(""),"0 0 10"));
            %flag.setGoal(pickGoal());
            if ($Game::TeamGame)
               bottomPrintAll(%tank.client.nameBase SPC "scored a goal for the" SPC %tank.client.team.shortName SPC "team!",4,2);
            else
               bottomPrintAll(%tank.client.nameBase SPC "scored a goal!",4,2);
            %tank.incScore(1,1);
         }
      }
   }
   else if (%db.type $= "brain")
   {
      if ($Game::SinglePlayer)
      {
         if (%tank.getId() == LocalClientConnection.player.getId())
         {
            %startScore = strfrap(strswiz($Game::idleText @ "client",12),%tank.client.spscore);
            %score = %startScore + $Game::BrainPoints;
            %tank.client.spscore = strfrip(strswiz($Game::idleText @ "client",12),%score);
            SPScoreGui.setScore(%score);
            LocalClientConnection.brains++;
            SPBrainCounter.setCount(LocalClientConnection.brains);
            LocalClientConnection.lastKillTime = getSimTime(); // delay exit for a moment

            // this code currently duplicates code in tank.cs...consolidate??? no, for "security" reasons
            %freeLives = mFloor(%score/10000)-mFloor(%startScore/10000);
            if (%freeLives>0)
            {
               alxPlay(SPExtra);
               %tank.client.lives = %tank.client.lives + %freeLives;
               SPLivesGui.showLives(%tank.client.lives);
            }
         }
      }
   }
}

function PowerUpData::onLeave(%db,%this,%tank)
{
   //echo(%tank.client.name @ " leaves powerup " @ %this.getId() @ " of type " @ %db.type);
}

function FlagData::onOutOfBounds(%db,%flag)
{
   %flag.clearMount();
   %flag.setTransform(VectorAdd(pickSpawnPoint(""),"0 0 10"));
   %flag.setGoal(pickGoal());
}

//-----------------------------------------------------------------------------

function FlagData::create(%block)
{
   switch$(%block)
   {
      case "DefaultFlag":
         %obj = new Flag() {
            dataBlock = %block;
         };
         return(%obj);
   }
   return(-1);
}

function PowerUpData::create(%block)
{
   switch$(%block)
   {
      case "TestPowerup":
         %obj = new PowerUp() { dataBlock = %block; };
         return(%obj);
      case "Heal":
         %obj = new PowerUp() { dataBlock = %block; };
         return(%obj);
      case "Reload":
         %obj = new PowerUp() { dataBlock = %block; };
         return(%obj);
      case "Brain":
         %obj = new PowerUp() { dataBlock = %block; };
         return(%obj);
   }
   return(-1);
}

function BoostData::create(%block)
{
   switch$(%block)
   {
      case "TestBoost":
         %obj = new Boost() { dataBlock = %block; };
         return(%obj);
      case "Boost1":
         %obj = new Boost() { dataBlock = %block; };
         return(%obj);
      case "Boost4":
         %obj = new Boost() { dataBlock = %block; };
         return(%obj);
      case "TestJump":
         %obj = new Boost() { dataBlock = %block; };
         return(%obj);
   }
   return(-1);
}

function VolcanoData::create(%block)
{
   switch$(%block)
   {
      case "VolcanoDB":
         %obj = new Volcano() { dataBlock = %block; };
         return(%obj);
   }
   return(-1);
}
00E
Need Major Repair
Need Major Repair
Posts: 1659
Joined: Sat Nov 01, 2008 8:38 am
Location: Pennsylvania
Contact:

Re: Special.cs

Post by 00E »

:thumbup: Thanx Daz :thumbup:
Has Been Playing TT Since February 18, 2004
Mods Made: 17
TT2 Supporter
User avatar
LGM
Site Admin
Site Admin
Posts: 2100
Joined: Fri Dec 29, 2006 12:59 pm
Location: Very Northwest WA
Contact:

Re: Special.cs

Post by LGM »

00E-

Back that up before you do changes and you won't need to ask where to find it again.
00E
Need Major Repair
Need Major Repair
Posts: 1659
Joined: Sat Nov 01, 2008 8:38 am
Location: Pennsylvania
Contact:

Re: Special.cs

Post by 00E »

I know I did back it up the first time but like I said I duplicated the file after I made one change, and that change was major, and I couldn't figure out how to fix it so I tried everything and pretty much messed everything else up so my backups never really helped, but thank you for reminding me!

Thx,
00E
Has Been Playing TT Since February 18, 2004
Mods Made: 17
TT2 Supporter
Post Reply