mirror of
https://github.com/Jusctsch5/ironsphererpg.git
synced 2026-01-19 19:44:45 +00:00
Taking everything obtained from http://ironsphererpg2.webs.com/ and dumping it in a git repo
1694 lines
44 KiB
C#
1694 lines
44 KiB
C#
$spelldamagetype = 8;
|
|
$DamageType::Spell = 8;
|
|
exec("scripts/weapons/chaingun.cs");
|
|
exec("scripts/weapons/plasma.cs");
|
|
exec("scripts/weapons/gernadelauncher.cs");
|
|
exec("scripts/weapons/SniperRifle.cs");
|
|
function ProjectileData::onCollision(%data, %projectile, %targetObject, %modifier, %position, %normal)
|
|
{
|
|
|
|
%targetObject.damage(%projectile, %position, %data.directDamage * %modifier, %data.directDamageType);
|
|
|
|
}
|
|
function RadiusExplosion(%explosionSource, %position, %radius, %damage, %impulse, %sourceObject, %damageType)
|
|
{
|
|
InitContainerRadiusSearch(%position, %radius, $TypeMasks::PlayerObjectType |
|
|
$TypeMasks::VehicleObjectType |
|
|
$TypeMasks::StaticShapeObjectType |
|
|
$TypeMasks::TurretObjectType |
|
|
$TypeMasks::ItemObjectType);
|
|
|
|
%numTargets = 0;
|
|
%targetlist = "";
|
|
while ((%targetObject = containerSearchNext()) != 0)
|
|
{
|
|
%dist = containerSearchCurrRadDamageDist();
|
|
|
|
if (%dist > %radius)
|
|
continue;
|
|
if(%targetObject.istownbot)
|
|
continue;
|
|
if (%targetObject.isMounted())
|
|
{
|
|
%mount = %targetObject.getObjectMount();
|
|
%found = -1;
|
|
for (%i = 0; %i < %mount.getDataBlock().numMountPoints; %i++)
|
|
{
|
|
if (%mount.getMountNodeObject(%i) == %targetObject)
|
|
{
|
|
%found = %i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (%found != -1)
|
|
{
|
|
if (%mount.getDataBlock().isProtectedMountPoint[%found])
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
|
|
%targets[%numTargets] = %targetObject;
|
|
|
|
%targetDists[%numTargets] = %dist;
|
|
%numTargets++;
|
|
}
|
|
|
|
for (%i = 0; %i < %numTargets; %i++)
|
|
{
|
|
%targetObject = %targets[%i];
|
|
%dist = %targetDists[%i];
|
|
|
|
%coverage = calcExplosionCoverage(%position, %targetObject,
|
|
($TypeMasks::InteriorObjectType |
|
|
$TypeMasks::TerrainObjectType |
|
|
$TypeMasks::ForceFieldObjectType |
|
|
$TypeMasks::VehicleObjectType));
|
|
if (%coverage == 0)
|
|
continue;
|
|
%targetlist = %targetObject SPC %targetlist;
|
|
//if ( $splashTest )
|
|
%amount = (1.0 - ((%dist / %radius) * 0.88)) * %coverage * %damage;
|
|
//else
|
|
//%amount = (1.0 - (%dist / %radius)) * %coverage * %damage;
|
|
|
|
//error( "damage: " @ %amount @ " at distance: " @ %dist @ " radius: " @ %radius @ " maxDamage: " @ %damage );
|
|
|
|
%data = %targetObject.getDataBlock();
|
|
%className = %data.className;
|
|
|
|
if (%impulse && %data.shouldApplyImpulse(%targetObject))
|
|
{
|
|
%p = %targetObject.getWorldBoxCenter();
|
|
%momVec = VectorSub(%p, %position);
|
|
%momVec = VectorNormalize(%momVec);
|
|
%impulseVec = VectorScale(%momVec, %impulse * (1.0 - (%dist / %radius)));
|
|
%doImpulse = true;
|
|
}
|
|
// ---------------------------------------------------------------------------
|
|
// z0dd - ZOD, 5/8/02. Removed Wheeled Vehicle to eliminate the flying MPB bug
|
|
// caused by tossing concussion grenades under a deployed MPB.
|
|
//else if( %className $= WheeledVehicleData || %className $= FlyingVehicleData || %className $= HoverVehicleData )
|
|
else if( %className $= FlyingVehicleData || %className $= HoverVehicleData )
|
|
{
|
|
%p = %targetObject.getWorldBoxCenter();
|
|
%momVec = VectorSub(%p, %position);
|
|
%momVec = VectorNormalize(%momVec);
|
|
|
|
%impulseVec = VectorScale(%momVec, %impulse * (1.0 - (%dist / %radius)));
|
|
|
|
if( getWord( %momVec, 2 ) < -0.5 )
|
|
%momVec = "0 0 1";
|
|
|
|
// Add obj's velocity into the momentum vector
|
|
%velocity = %targetObject.getVelocity();
|
|
//%momVec = VectorNormalize( vectorAdd( %momVec, %velocity) );
|
|
%doImpulse = true;
|
|
}
|
|
else
|
|
{
|
|
%momVec = "0 0 1";
|
|
%doImpulse = false;
|
|
}
|
|
%data2 = %explosionSource.getDataBlock();
|
|
if(%amount > 0)
|
|
{
|
|
//echo("spell:" @ %explosionsource.spell);
|
|
%targetObject.damage(%explosionsource, %position, %data2.directDamage * (1.0 - (%dist / %radius)), %DamageType);
|
|
//%data.damageObject(%targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %explosionSource.theClient, %explosionSource);
|
|
}
|
|
else if( %explosionSource.getDataBlock().getName() $= "ConcussionGrenadeThrown" && %data.getClassName() $= "PlayerData" )
|
|
{
|
|
%data.applyConcussion( %dist, %radius, %sourceObject, %targetObject );
|
|
|
|
if(!$teamDamage && %sourceObject != %targetObject && %sourceObject.client.team == %targetObject.client.team)
|
|
{
|
|
messageClient(%targetObject.client, 'msgTeamConcussionGrenade', '\c1You were hit by %1\'s concussion grenade.', getTaggedString(%sourceObject.client.name));
|
|
}
|
|
}
|
|
|
|
if( %doImpulse )
|
|
%targetObject.applyImpulse(%position, %impulseVec);
|
|
}
|
|
return %targetlist;
|
|
}
|
|
|
|
datablock ParticleData(GrenadeSmokeParticle)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = -0.2; // rises slowly
|
|
inheritedVelFactor = 0.00;
|
|
|
|
lifetimeMS = 700; // lasts 2 second
|
|
lifetimeVarianceMS = 150; // ...more or less
|
|
|
|
textureName = "particleTest";
|
|
|
|
useInvAlpha = true;
|
|
spinRandomMin = -30.0;
|
|
spinRandomMax = 30.0;
|
|
|
|
colors[0] = "0.9 0.9 0.9 1.0";
|
|
colors[1] = "0.6 0.6 0.6 1.0";
|
|
colors[2] = "0.4 0.4 0.4 0.0";
|
|
|
|
sizes[0] = 0.25;
|
|
sizes[1] = 1.0;
|
|
sizes[2] = 3.0;
|
|
|
|
times[0] = 0.0;
|
|
times[1] = 0.2;
|
|
times[2] = 1.0;
|
|
};
|
|
|
|
datablock ParticleEmitterData(GrenadeSmokeEmitter)
|
|
{
|
|
ejectionPeriodMS = 15;
|
|
periodVarianceMS = 5;
|
|
|
|
ejectionVelocity = 1.25;
|
|
velocityVariance = 0.50;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 90.0;
|
|
|
|
particles = "GrenadeSmokeParticle";
|
|
};
|
|
|
|
datablock EnergyProjectileData(EnergyBlast)
|
|
{
|
|
emitterDelay = -1;
|
|
directDamage = 0.01;
|
|
directDamageType = $DamageType::Spell;
|
|
kickBackStrength = 0.0;
|
|
bubbleEmitTime = 1.0;
|
|
|
|
sound = BlasterProjectileSound;
|
|
velInheritFactor = 0.5;
|
|
|
|
explosion = "BlasterExplosion";
|
|
splash = BlasterSplash;
|
|
|
|
|
|
grenadeElasticity = 0.998;
|
|
grenadeFriction = 0.0;
|
|
armingDelayMS = 500;
|
|
|
|
muzzleVelocity = 15.0;
|
|
|
|
drag = 0.05;
|
|
|
|
gravityMod = 0.0;
|
|
|
|
dryVelocity = 200.0;
|
|
wetVelocity = 150.0;
|
|
|
|
reflectOnWaterImpactAngle = 0.0;
|
|
explodeOnWaterImpact = false;
|
|
deflectionOnWaterImpact = 0.0;
|
|
fizzleUnderwaterMS = 3000;
|
|
|
|
hasLight = true;
|
|
lightRadius = 1.0;
|
|
lightColor = "0.5 0.0 0.0";
|
|
|
|
scale = "0.3 10.1 0.4";
|
|
crossViewAng = 0.99;
|
|
crossSize = 0.55;
|
|
|
|
lifetimeMS = 9000;
|
|
blurLifetime = 0.3;
|
|
blurWidth = 0.2;
|
|
blurColor = "0.4 0.0 0.0 1.0";
|
|
|
|
texture[0] = "special/blasterBolt";
|
|
texture[1] = "special/blasterBoltCross";
|
|
};
|
|
|
|
// #######################
|
|
// AUDIO DATABLOCK - THORN
|
|
// #######################
|
|
|
|
datablock AudioProfile(ThornProjectile)
|
|
{
|
|
filename = "Spell_Ice.wav";
|
|
description = ProjectileLooping3d;
|
|
preload = true;
|
|
};
|
|
|
|
|
|
datablock TracerProjectileData(Thorn)
|
|
{
|
|
doDynamicClientHits = true;
|
|
|
|
directDamage = 0.01;
|
|
directDamageType = $DamageType::Spell;
|
|
explosion = "ChaingunExplosion";
|
|
splash = ChaingunSplash;
|
|
|
|
kickBackStrength = 0.0;
|
|
sound = ThornProjectile;
|
|
|
|
dryVelocity = 425.0;
|
|
wetVelocity = 100.0;
|
|
velInheritFactor = 1.0;
|
|
fizzleTimeMS = 3000;
|
|
lifetimeMS = 3000;
|
|
explodeOnDeath = false;
|
|
reflectOnWaterImpactAngle = 0.0;
|
|
explodeOnWaterImpact = false;
|
|
deflectionOnWaterImpact = 0.0;
|
|
fizzleUnderwaterMS = 3000;
|
|
|
|
tracerLength = 15.0;
|
|
tracerAlpha = false;
|
|
tracerMinPixels = 6;
|
|
tracerColor = 211.0/255.0 @ " " @ 215.0/255.0 @ " " @ 120.0/255.0 @ " 0.75";
|
|
tracerTex[0] = "special/tracer00";
|
|
tracerTex[1] = "special/tracercross";
|
|
tracerWidth = 0.10;
|
|
crossSize = 0.20;
|
|
crossViewAng = 0.990;
|
|
renderCross = true;
|
|
|
|
decalData[0] = ChaingunDecal1;
|
|
decalData[1] = ChaingunDecal2;
|
|
decalData[2] = ChaingunDecal3;
|
|
decalData[3] = ChaingunDecal4;
|
|
decalData[4] = ChaingunDecal5;
|
|
decalData[5] = ChaingunDecal6;
|
|
};
|
|
datablock LinearFlareProjectileData(FireBall2)
|
|
{
|
|
projectileShapeName = "plasmabolt.dts";
|
|
scale = "2.0 2.0 2.0";
|
|
faceViewer = true;
|
|
directDamage = 0.00;
|
|
hasDamageRadius = true;
|
|
indirectDamage = 0.04;
|
|
damageRadius = 4.0;
|
|
kickBackStrength = 0.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
directDamageType = $DamageType::Spell;
|
|
|
|
explosion = "PlasmaBoltExplosion";
|
|
splash = PlasmaSplash;
|
|
|
|
dryVelocity = 55.0;
|
|
wetVelocity = -1;
|
|
velInheritFactor = 0.3;
|
|
fizzleTimeMS = 2000;
|
|
lifetimeMS = 3000;
|
|
explodeOnDeath = false;
|
|
reflectOnWaterImpactAngle = 0.0;
|
|
explodeOnWaterImpact = true;
|
|
deflectionOnWaterImpact = 0.0;
|
|
fizzleUnderwaterMS = -1;
|
|
|
|
//activateDelayMS = 100;
|
|
activateDelayMS = -1;
|
|
|
|
size[0] = 0.2;
|
|
size[1] = 0.5;
|
|
size[2] = 0.1;
|
|
|
|
|
|
numFlares = 35;
|
|
flareColor = "1 0.75 0.25";
|
|
flareModTexture = "flaremod";
|
|
flareBaseTexture = "flarebase";
|
|
|
|
sound = PlasmaProjectileSound;
|
|
fireSound = PlasmaFireSound;
|
|
wetFireSound = PlasmaFireWetSound;
|
|
|
|
hasLight = true;
|
|
lightRadius = 3.0;
|
|
lightColor = "1 0.75 0.25";
|
|
};
|
|
//ironfist
|
|
|
|
|
|
|
|
datablock ExplosionData(IronFistExplosion)
|
|
{
|
|
soundProfile = GrenadeExplosionSound;
|
|
|
|
faceViewer = true;
|
|
explosionScale = "0.8 0.8 0.8";
|
|
|
|
debris = GrenadeDebris;
|
|
debrisThetaMin = 10;
|
|
debrisThetaMax = 50;
|
|
debrisNum = 8;
|
|
debrisVelocity = 26.0;
|
|
debrisVelocityVariance = 7.0;
|
|
|
|
emitter[0] = GrenadeDustEmitter;
|
|
emitter[1] = GExplosionSmokeEmitter;
|
|
emitter[2] = GrenadeSparksEmitter;
|
|
|
|
shakeCamera = true;
|
|
camShakeFreq = "5.0 3.0 6.0";
|
|
camShakeAmp = "100.0 100.0 100.0";
|
|
camShakeDuration = 10;
|
|
camShakeRadius = 10.0;
|
|
};
|
|
|
|
datablock LinearFlareProjectileData(IronFist)
|
|
{
|
|
projectileShapeName = "ironfist.dts";
|
|
scale = "2.0 2.0 2.0";
|
|
//faceViewer = true;
|
|
directDamage = 0;
|
|
hasDamageRadius = true;
|
|
indirectDamage = 0.04;
|
|
damageRadius = 4.0;
|
|
kickBackStrength = 2500.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
directDamageType = $DamageType::Spell;
|
|
|
|
explosion = "IronFistExplosion";
|
|
splash = GrenadeSplash;
|
|
|
|
dryVelocity = 55.0;
|
|
wetVelocity = 55.0;
|
|
velInheritFactor = 0.3;
|
|
fizzleTimeMS = 2000;
|
|
lifetimeMS = 3000;
|
|
explodeOnDeath = false;
|
|
reflectOnWaterImpactAngle = 0.0;
|
|
explodeOnWaterImpact = true;
|
|
deflectionOnWaterImpact = 0.0;
|
|
fizzleUnderwaterMS = -1;
|
|
|
|
//activateDelayMS = 100;
|
|
activateDelayMS = -1;
|
|
|
|
size[0] = 0.2;
|
|
size[1] = 0.5;
|
|
size[2] = 0.1;
|
|
|
|
|
|
numFlares = 35;
|
|
flareColor = "0 0 0";
|
|
flareModTexture = "flaremod";
|
|
flareBaseTexture = "flarebase";
|
|
|
|
sound = PlasmaProjectileSound;
|
|
fireSound = PlasmaFireSound;
|
|
wetFireSound = PlasmaFireWetSound;
|
|
|
|
hasLight = false;
|
|
};
|
|
|
|
|
|
//Firebomb
|
|
//---------------------------------------------------------------
|
|
|
|
|
|
datablock GrenadeProjectileData(FireBomb)
|
|
{
|
|
projectileShapeName = "plasmabolt.dts";
|
|
faceViewer = true;
|
|
emitterDelay = 0.1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = true;
|
|
indirectDamage = 0.40;
|
|
damageRadius = 5.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
kickBackStrength = 10;
|
|
bubbleEmitTime = 1.0;
|
|
|
|
sound = PlasmaProjectileSound;
|
|
explosion = "PlasmaBoltExplosion";
|
|
velInheritFactor = 0.5;
|
|
splash = PlasmaSplash;
|
|
|
|
explodeOnWaterImpact= true;
|
|
baseEmitter = "GrenadeSmokeEmitter";
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 250;
|
|
muzzleVelocity = 47.00;
|
|
drag = 0.1;
|
|
|
|
hasLight = true;
|
|
lightRadius = 3.0;
|
|
lightColor = "1 0.75 0.25";
|
|
|
|
};
|
|
|
|
|
|
// #######################
|
|
// AUDIO DATABLOCK - ICE SPIKE
|
|
// #######################
|
|
|
|
datablock AudioProfile(IceProjectile)
|
|
{
|
|
filename = "spell_beam.wav";
|
|
description = ProjectileLooping3d;
|
|
preload = true;
|
|
};
|
|
|
|
datablock AudioProfile(IceSpikeImpact)
|
|
{
|
|
filename = "iceburst.wav";
|
|
description = AudioClosest3d;
|
|
preload = true;
|
|
};
|
|
|
|
|
|
//icespike
|
|
//--------------------
|
|
|
|
|
|
datablock ParticleData(IceSpikeParticle)
|
|
{
|
|
dragCoefficient = 3;
|
|
gravityCoefficient = 0.1;
|
|
windCoefficient = 1;
|
|
inheritedVelFactor = 0.2;
|
|
constantAcceleration = 0;
|
|
lifetimeMS = 2500;
|
|
lifetimeVarianceMS = 56;
|
|
useInvAlpha = 0;
|
|
spinRandomMin = -51.6129;
|
|
spinRandomMax = 205.645;
|
|
textureName = "special/Ice2.png";
|
|
times[0] = 0;
|
|
times[1] = 0.177419;
|
|
times[2] = 1;
|
|
colors[0] = "0.149606 0.360000 0.560000 1.000000";
|
|
colors[1] = "0.236220 0.360000 0.568000 0.588710";
|
|
colors[2] = "0.157480 0.360000 1.000000 0.000000";
|
|
sizes[0] = 0;
|
|
sizes[1] = 0.451613;
|
|
sizes[2] = 1.18548;
|
|
};
|
|
|
|
datablock ParticleEmitterData(IceSpikeEmitter)
|
|
{
|
|
ejectionPeriodMS = 2;
|
|
periodVarianceMS = 0;
|
|
ejectionVelocity = 2.74194;
|
|
velocityVariance = 2;
|
|
ejectionOffset = 0;
|
|
thetaMin = 0;
|
|
lifetimeMS = 120;
|
|
thetaMax = 72.5806;
|
|
phiReferenceVel = 0;
|
|
phiVariance = 360;
|
|
overrideAdvances = 0;
|
|
orientParticles= 0;
|
|
orientOnVelocity = 0;
|
|
particles = "IceSpikeParticle";
|
|
};
|
|
|
|
|
|
datablock ParticleData(IceSparks2Particle)
|
|
{
|
|
dragCoefficient = 0;
|
|
gravityCoefficient = -0.01;
|
|
windCoefficient = 1;
|
|
inheritedVelFactor = 0;
|
|
constantAcceleration = 0;
|
|
lifetimeMS = 1000;
|
|
lifetimeVarianceMS = 0;
|
|
useInvAlpha = 0;
|
|
spinRandomMin = 0;
|
|
spinRandomMax = 0;
|
|
textureName = "special/crescent3.png";
|
|
times[0] = 0;
|
|
times[1] = 0.508065;
|
|
times[2] = 1;
|
|
colors[0] = "0.500000 0.500000 1.000000 1.000000";
|
|
colors[1] = "0.500000 0.500000 1.000000 0.500000";
|
|
colors[2] = "0.500000 0.500000 1.000000 0.000000";
|
|
sizes[0] = 0.395161;
|
|
sizes[1] = 0.33871;
|
|
sizes[2] = 0.508065;
|
|
};
|
|
|
|
datablock ParticleEmitterData(IceSparks2)
|
|
{
|
|
ejectionPeriodMS = 2;
|
|
periodVarianceMS = 0;
|
|
ejectionVelocity = 4.55645;
|
|
velocityVariance = 1;
|
|
ejectionOffset = 0.806452;
|
|
thetaMin = 0;
|
|
thetaMax = 90;
|
|
phiReferenceVel = 0;
|
|
phiVariance = 360;
|
|
overrideAdvances = 0;
|
|
lifeTimeMS = 60.6796;
|
|
orientParticles= 1;
|
|
orientOnVelocity = 0;
|
|
particles = "IceSparks2Particle";
|
|
};
|
|
|
|
|
|
|
|
|
|
datablock ExplosionData(IceSpikeExplosion)
|
|
{
|
|
soundProfile = IceSpikeImpact;
|
|
|
|
emitter[0] = IceSpikeEmitter;
|
|
emitter[1] = IceSparks2;
|
|
|
|
faceViewer = false;
|
|
};
|
|
|
|
datablock LinearProjectileData(IceSpike)
|
|
{
|
|
projectileShapeName = "disc.dts";
|
|
scale = "0.1 1.0 0.2";
|
|
emitterDelay = -1;
|
|
directDamage = 0.1;
|
|
hasDamageRadius = false;
|
|
indirectDamage = 0.00;
|
|
damageRadius = 0.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
directDamageType = $damageType::spell;
|
|
kickBackStrength = 0;
|
|
|
|
sound = IceProjectile;
|
|
explosion = "IceSpikeExplosion";
|
|
underwaterExplosion = "IceSpikeExplosion";
|
|
splash = ChaingunSplash;
|
|
|
|
dryVelocity = 70;
|
|
wetVelocity = 10;
|
|
velInheritFactor = 0.5;
|
|
fizzleTimeMS = 5000;
|
|
lifetimeMS = 5000;
|
|
explodeOnDeath = true;
|
|
reflectOnWaterImpactAngle = 15.0;
|
|
explodeOnWaterImpact = true;
|
|
deflectionOnWaterImpact = 0.0;
|
|
fizzleUnderwaterMS = 5000;
|
|
|
|
activateDelayMS = 200;
|
|
|
|
hasLight = true;
|
|
lightRadius = 2.0;
|
|
lightColor = "0.175 0.175 0.9";
|
|
};
|
|
datablock LinearProjectileData(IceSpike2)
|
|
{
|
|
projectileShapeName = "disc.dts";
|
|
scale = "0.1 1.0 0.2";
|
|
emitterDelay = -1;
|
|
directDamage = 0.1;
|
|
hasDamageRadius = false;
|
|
indirectDamage = 0.00;
|
|
damageRadius = 0.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
directDamageType = $damageType::spell;
|
|
kickBackStrength = 0;
|
|
|
|
sound = IceProjectile;
|
|
explosion = "IceSpikeExplosion";
|
|
underwaterExplosion = "IceSpikeExplosion";
|
|
splash = ChaingunSplash;
|
|
|
|
dryVelocity = 70;
|
|
wetVelocity = 10;
|
|
velInheritFactor = 0.5;
|
|
fizzleTimeMS = 500;
|
|
lifetimeMS = 500;
|
|
explodeOnDeath = true;
|
|
reflectOnWaterImpactAngle = 15.0;
|
|
explodeOnWaterImpact = true;
|
|
deflectionOnWaterImpact = 0.0;
|
|
fizzleUnderwaterMS = 500;
|
|
|
|
activateDelayMS = 200;
|
|
|
|
hasLight = true;
|
|
lightRadius = 2.0;
|
|
lightColor = "0.175 0.175 0.9";
|
|
};
|
|
|
|
//datablock GrenadeProjectileData(IceSpike2)
|
|
//{
|
|
// projectileShapeName = "disc.dts";
|
|
// scale = "0.1 1.0 0.2";
|
|
// emitterDelay = -1;
|
|
// directDamage = 0.1;
|
|
// hasDamageRadius = false;
|
|
// indirectDamage = 0.00;
|
|
// damageRadius = 0.0;
|
|
// radiusDamageType = $DamageType::Spell;
|
|
// directDamageType = $damageType::spell;
|
|
// kickBackStrength = 0;
|
|
//
|
|
// bubbleEmitTime = 1.0;
|
|
//
|
|
// sound = ChaingunProjectile;
|
|
// explosion = "ChaingunExplosion";
|
|
// velInheritFactor = 0.5;
|
|
// splash = ChaingunSplash;
|
|
//
|
|
// explodeOnWaterImpact= true;
|
|
//
|
|
//
|
|
// grenadeElasticity = 0.1;
|
|
// grenadeFriction = 0.1;
|
|
// armingDelayMS = 250;
|
|
// muzzleVelocity = 47.00;
|
|
// drag = 0.1;
|
|
// lifetimeMS = 5000;
|
|
//};
|
|
|
|
|
|
|
|
|
|
//melt
|
|
|
|
datablock ExplosionData(MeltExplosion)
|
|
{
|
|
explosionShape = "effect_plasma_explosion.dts";
|
|
soundProfile = plasmaExpSound;
|
|
particleEmitter = PlasmaExplosionEmitter;
|
|
particleDensity = 150;
|
|
particleRadius = 1.25;
|
|
faceViewer = true;
|
|
|
|
sizes[0] = "5.0 5.0 5.0";
|
|
sizes[1] = "5.0 5.0 5.0";
|
|
times[0] = 0.0;
|
|
times[1] = 1.5;
|
|
};
|
|
datablock LinearFlareProjectileData(Melt)
|
|
{
|
|
projectileShapeName = "plasmabolt.dts";
|
|
scale = "10.0 10.0 10.0";
|
|
faceViewer = true;
|
|
directDamage = 0.00;
|
|
hasDamageRadius = true;
|
|
indirectDamage = 0.04;
|
|
damageRadius = 15.0;
|
|
kickBackStrength = 0.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
directDamageType = $DamageType::Spell;
|
|
|
|
explosion = "MeltExplosion";
|
|
splash = PlasmaSplash;
|
|
|
|
dryVelocity = 55.0;
|
|
wetVelocity = -1;
|
|
velInheritFactor = 0.3;
|
|
fizzleTimeMS = 2000;
|
|
lifetimeMS = 3000;
|
|
explodeOnDeath = false;
|
|
reflectOnWaterImpactAngle = 0.0;
|
|
explodeOnWaterImpact = true;
|
|
deflectionOnWaterImpact = 0.0;
|
|
fizzleUnderwaterMS = -1;
|
|
|
|
//activateDelayMS = 100;
|
|
activateDelayMS = -1;
|
|
|
|
size[0] = 0.2;
|
|
size[1] = 0.5;
|
|
size[2] = 0.1;
|
|
|
|
|
|
numFlares = 35;
|
|
flareColor = "1 0.75 0.25";
|
|
flareModTexture = "flaremod";
|
|
flareBaseTexture = "flarebase";
|
|
|
|
sound = PlasmaProjectileSound;
|
|
fireSound = PlasmaFireSound;
|
|
wetFireSound = PlasmaFireWetSound;
|
|
|
|
hasLight = true;
|
|
lightRadius = 3.0;
|
|
lightColor = "1 0.75 0.25";
|
|
};
|
|
|
|
datablock LinearFlareProjectileData(HellFireball)
|
|
{
|
|
projectileShapeName = "plasmabolt.dts";
|
|
scale = "10.0 10.0 10.0";
|
|
faceViewer = true;
|
|
directDamage = 0.00;
|
|
hasDamageRadius = true;
|
|
indirectDamage = 0.04;
|
|
damageRadius = 15.0;
|
|
kickBackStrength = 0.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
directDamageType = $DamageType::Spell;
|
|
|
|
explosion = "MeltExplosion";
|
|
splash = PlasmaSplash;
|
|
|
|
dryVelocity = 30.0;
|
|
wetVelocity = 30;
|
|
velInheritFactor = 0.3;
|
|
fizzleTimeMS = 1000;
|
|
lifetimeMS = 1000;
|
|
explodeOnDeath = true;
|
|
reflectOnWaterImpactAngle = 0.0;
|
|
explodeOnWaterImpact = true;
|
|
deflectionOnWaterImpact = 0.0;
|
|
fizzleUnderwaterMS = -1;
|
|
|
|
//activateDelayMS = 100;
|
|
activateDelayMS = -1;
|
|
|
|
size[0] = 0.2;
|
|
size[1] = 0.5;
|
|
size[2] = 0.1;
|
|
|
|
|
|
numFlares = 35;
|
|
flareColor = "1 0.75 0.25";
|
|
flareModTexture = "flaremod";
|
|
flareBaseTexture = "flarebase";
|
|
|
|
sound = PlasmaProjectileSound;
|
|
fireSound = PlasmaFireSound;
|
|
wetFireSound = PlasmaFireWetSound;
|
|
|
|
hasLight = true;
|
|
lightRadius = 3.0;
|
|
lightColor = "1 0.75 0.25";
|
|
};
|
|
//dimension rift
|
|
//Credit goes to MostLikely for this bit.
|
|
datablock ParticleData(DHHoleParticle)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = 0.0;
|
|
inheritedVelFactor = 0.0;
|
|
|
|
lifetimeMS = 6000;
|
|
lifetimeVarianceMS = 0;
|
|
spinSpeed = "0";
|
|
spinRandomMin = 0.0;
|
|
spinRandomMax = 0.0;
|
|
windcoefficient = 0;
|
|
textureName = "skins/jetpackFlare";
|
|
UseInvAlpha = True;
|
|
colors[0] = "0.0 0.0 0.0 0.0";
|
|
colors[1] = "0.0 0.0 0.0 1.0";
|
|
colors[2] = "0.0 0.0 0.0 1.0";
|
|
colors[3] = "0.0 0.0 0.0 0.0";
|
|
|
|
sizes[0] = 800;
|
|
sizes[1] = 800;
|
|
sizes[2] = 800;
|
|
sizes[3] = 800;
|
|
|
|
times[0] = 0.25;
|
|
times[1] = 0.5;
|
|
times[2] = 0.75;
|
|
times[3] = 1;
|
|
|
|
};
|
|
|
|
|
|
|
|
datablock ParticleEmitterData(DHHoleEmitter)
|
|
{
|
|
lifetimeMS = 10;
|
|
ejectionPeriodMS = 50;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 0.1;
|
|
velocityVariance = 0.1;
|
|
ejectionoffset = 10;
|
|
phiReferenceVel = "0";
|
|
phiVariance = "360";
|
|
thetaMin = 0.0;
|
|
thetaMax = 180.0;
|
|
spinRandomMin = "-200";
|
|
spinRandomMax = "200";
|
|
|
|
orientParticles = true;
|
|
orientOnVelocity = false;
|
|
|
|
particles = "DHHoleParticle";
|
|
predietime = 6000;
|
|
};
|
|
|
|
|
|
|
|
|
|
datablock ShockwaveData(RiftShockwave)
|
|
{
|
|
width = 5;
|
|
numSegments = 20;
|
|
numVertSegments = 4;
|
|
velocity = 100;
|
|
acceleration = -10.0;
|
|
lifetimeMS = 5200;
|
|
height = 2.0;
|
|
verticalCurve = 0.5;
|
|
|
|
mapToTerrain = false;
|
|
renderBottom = true;
|
|
|
|
texture[0] = "special/shockwave4";
|
|
texture[1] = "special/gradient";
|
|
texWrap = 6.0;
|
|
|
|
times[0] = 0.0;
|
|
times[1] = 0.5;
|
|
times[2] = 1.0;
|
|
|
|
colors[0] = "1.0 0.7 0.5 1.0";
|
|
colors[1] = "1.0 0.5 0.2 1.0";
|
|
colors[2] = "1.0 0.25 0.1 0.0";
|
|
|
|
};
|
|
datablock AudioProfile(RiftExplosionSound)
|
|
{
|
|
filename = "fx/vehicles/bomber_bomb_impact.wav";
|
|
description = AudioBIGExplosion3d;
|
|
preload = true;
|
|
|
|
};
|
|
datablock ExplosionData(RiftExplosion)
|
|
{
|
|
shockwave = RiftShockwave;
|
|
shockwaveOnTerrain = false;
|
|
|
|
explosionShape = "effect_plasma_explosion.dts";
|
|
|
|
playSpeed = 1.0;
|
|
soundProfile = RiftExplosionSound;
|
|
faceViewer = true;
|
|
|
|
sizes[0] = "10.0 10.0 10.0";
|
|
|
|
shakeCamera = true;
|
|
camShakeFreq = "6.0 7.0 7.0";
|
|
camShakeAmp = "100.0 100.0 100.0";
|
|
camShakeDuration = 1.0;
|
|
camShakeRadius = 7.0;
|
|
};
|
|
|
|
datablock LinearProjectileData(Drift) {
|
|
|
|
className = "LinearProjectileData";
|
|
projectileShapeName = "turret_muzzlepoint.dts";
|
|
baseEmitter = "DHHoleEmitter";
|
|
|
|
directDamage = 0.1;
|
|
hasDamageRadius = true;
|
|
indirectDamage = 0.1;
|
|
damageRadius = 75.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
directDamageType = $DamageType::spell;
|
|
kickBackStrength = -7500.0;
|
|
delayEmitter = "DHHoleEmitter";
|
|
hasLight = "1";
|
|
lightRadius = "20";
|
|
lightColor = "0.500000 0.500000 1.000000 1.000000";
|
|
dryVelocity = "12";
|
|
wetVelocity = "12";
|
|
fizzleTimeMS = "12000";
|
|
lifetimeMS = "12000";
|
|
explodeOnDeath = "1";
|
|
|
|
explosion = "RiftExplosion";
|
|
};
|
|
|
|
datablock SniperProjectileData(Beam)
|
|
{
|
|
directDamage = 0.4;
|
|
hasDamageRadius = false;
|
|
indirectDamage = 0.0;
|
|
damageRadius = 0.0;
|
|
velInheritFactor = 1.0;
|
|
sound = SniperRifleProjectileSound;
|
|
explosion = "SniperExplosion";
|
|
splash = SniperSplash;
|
|
directDamageType = $DamageType::Spell;
|
|
|
|
maxRifleRange = 1000;
|
|
rifleHeadMultiplier = 1.3;
|
|
beamColor = "1 0.1 0.1";
|
|
fadeTime = 10.0;
|
|
|
|
startBeamWidth = 0.145;
|
|
endBeamWidth = 0.25;
|
|
pulseBeamWidth = 0.5;
|
|
beamFlareAngle = 3.0;
|
|
minFlareSize = 0.0;
|
|
maxFlareSize = 400.0;
|
|
pulseSpeed = 6.0;
|
|
pulseLength = 0.150;
|
|
|
|
lightRadius = 10.0;
|
|
lightColor = "0.3 0.0 0.0";
|
|
|
|
textureName[0] = "special/flare";
|
|
textureName[1] = "special/nonlingradient";
|
|
textureName[2] = "special/laserrip01";
|
|
textureName[3] = "special/laserrip02";
|
|
textureName[4] = "special/laserrip03";
|
|
textureName[5] = "special/laserrip04";
|
|
textureName[6] = "special/laserrip05";
|
|
textureName[7] = "special/laserrip06";
|
|
textureName[8] = "special/laserrip07";
|
|
textureName[9] = "special/laserrip08";
|
|
textureName[10] = "special/laserrip09";
|
|
textureName[11] = "special/sniper00";
|
|
|
|
};
|
|
//cloud
|
|
|
|
datablock ParticleData(CloudParticle)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = 0.0;
|
|
inheritedVelFactor = 0.0;
|
|
|
|
lifetimeMS = 500;
|
|
lifetimeVarianceMS = 0;
|
|
spinSpeed = "0";
|
|
spinRandomMin = 0.0;
|
|
spinRandomMax = 0.0;
|
|
windcoefficient = 0;
|
|
textureName = "skins/jetpackFlare";
|
|
UseInvAlpha = True;
|
|
colors[0] = "0.5 0.5 0.5 0.0";
|
|
colors[1] = "0.8 0.7 0.7 1.0";
|
|
colors[2] = "0.7 0.8 0.7 1.0";
|
|
colors[3] = "0.7 0.7 0.8 0.0";
|
|
|
|
sizes[0] = 10;
|
|
sizes[1] = 10;
|
|
sizes[2] = 10;
|
|
sizes[3] = 10;
|
|
|
|
times[0] = 0.25;
|
|
times[1] = 0.5;
|
|
times[2] = 0.75;
|
|
times[3] = 1;
|
|
|
|
};
|
|
|
|
|
|
datablock ParticleEmitterData(CloudEmitter)
|
|
{
|
|
lifetimeMS = 10;
|
|
ejectionPeriodMS = 50;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 0.1;
|
|
velocityVariance = 0.1;
|
|
ejectionoffset = 2;
|
|
phiReferenceVel = "0";
|
|
phiVariance = "360";
|
|
thetaMin = 0.0;
|
|
thetaMax = 180.0;
|
|
spinRandomMin = "-200";
|
|
spinRandomMax = "200";
|
|
|
|
orientParticles = true;
|
|
orientOnVelocity = false;
|
|
|
|
particles = "CloudParticle";
|
|
predietime = 500;
|
|
};
|
|
|
|
datablock LinearProjectileData(Cloud) {
|
|
|
|
className = "LinearProjectileData";
|
|
projectileShapeName = "turret_muzzlepoint.dts";
|
|
baseEmitter = "CloudEmitter";
|
|
|
|
directDamage = 0.1;
|
|
hasDamageRadius = true;
|
|
indirectDamage = 0.1;
|
|
faceviewer = true;
|
|
damageRadius = 10.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
directDamageType = $DamageType::spell;
|
|
|
|
delayEmitter = "CloudEmitter";
|
|
|
|
dryVelocity = "35";
|
|
wetVelocity = "35";
|
|
fizzleTimeMS = "12000";
|
|
lifetimeMS = "12000";
|
|
explodeOnDeath = "1";
|
|
|
|
explosion = "PlasmaBoltExplosion";
|
|
};
|
|
|
|
datablock ParticleData(PCloudParticle)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = 0.0;
|
|
inheritedVelFactor = 0.0;
|
|
|
|
lifetimeMS = 500;
|
|
lifetimeVarianceMS = 0;
|
|
spinSpeed = "0";
|
|
spinRandomMin = 0.0;
|
|
spinRandomMax = 0.0;
|
|
windcoefficient = 0;
|
|
textureName = "skins/jetpackFlare";
|
|
UseInvAlpha = True;
|
|
colors[0] = "1.0 0.3 0.1 0.0";
|
|
colors[1] = "1.0 0.3 0.3 1.0";
|
|
colors[2] = "1.0 0.3 0.5 1.0";
|
|
colors[3] = "1.0 0.1 0.5 0.0";
|
|
|
|
sizes[0] = 10;
|
|
sizes[1] = 10;
|
|
sizes[2] = 10;
|
|
sizes[3] = 10;
|
|
|
|
times[0] = 0.25;
|
|
times[1] = 0.5;
|
|
times[2] = 0.75;
|
|
times[3] = 1;
|
|
|
|
};
|
|
|
|
|
|
datablock ParticleEmitterData(PCloudEmitter)
|
|
{
|
|
lifetimeMS = 10;
|
|
ejectionPeriodMS = 50;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 0.1;
|
|
velocityVariance = 0.1;
|
|
ejectionoffset = 2;
|
|
phiReferenceVel = "0";
|
|
phiVariance = "360";
|
|
thetaMin = 0.0;
|
|
thetaMax = 180.0;
|
|
spinRandomMin = "-200";
|
|
spinRandomMax = "200";
|
|
|
|
orientParticles = true;
|
|
orientOnVelocity = false;
|
|
|
|
particles = "PCloudParticle";
|
|
predietime = 500;
|
|
};
|
|
|
|
datablock LinearProjectileData(PowerCloud) {
|
|
|
|
className = "LinearProjectileData";
|
|
projectileShapeName = "turret_muzzlepoint.dts";
|
|
baseEmitter = "PCloudEmitter";
|
|
|
|
directDamage = 0.1;
|
|
hasDamageRadius = true;
|
|
indirectDamage = 0.1;
|
|
faceviewer = true;
|
|
damageRadius = 10.0;
|
|
radiusDamageType = $DamageType::Spell;
|
|
directDamageType = $DamageType::spell;
|
|
|
|
delayEmitter = "PCloudEmitter";
|
|
|
|
dryVelocity = "40";
|
|
wetVelocity = "40";
|
|
fizzleTimeMS = "12000";
|
|
lifetimeMS = "12000";
|
|
explodeOnDeath = "1";
|
|
|
|
explosion = "PlasmaBoltExplosion";
|
|
};
|
|
|
|
//Defensive Magic
|
|
|
|
datablock ParticleData(HealAuraEmitter2Particle)
|
|
{
|
|
dragCoefficient = 0;
|
|
gravityCoefficient = 0.053871;
|
|
windCoefficient = 0;
|
|
inheritedVelFactor = 1;
|
|
constantAcceleration = 0;
|
|
lifetimeMS = 600;
|
|
lifetimeVarianceMS = 300;
|
|
useInvAlpha = 0;
|
|
spinRandomMin = -200;
|
|
spinRandomMax = 0;
|
|
textureName = "special/blasterBoltCross.PNG";
|
|
times[0] = 0;
|
|
times[1] = 0.01;
|
|
times[2] = 1;
|
|
colors[0] = "0.000000 0.256000 1.000000 1.000000";
|
|
colors[1] = "0.000000 0.528000 1.000000 0.500000";
|
|
colors[2] = "0.000000 0.784000 1.000000 0.000000";
|
|
sizes[0] = 1;
|
|
sizes[1] = 1;
|
|
sizes[2] = 1.18548;
|
|
};
|
|
|
|
datablock ParticleEmitterData(HealAuraEmitter2)
|
|
{
|
|
ejectionPeriodMS = 1;
|
|
periodVarianceMS = 0;
|
|
ejectionVelocity = 4.84677;
|
|
velocityVariance = 4.70161;
|
|
ejectionOffset = 0.645161;
|
|
phiReferenceVel = "0";
|
|
phiVariance = "360";
|
|
thetaMin = 0.0;
|
|
thetaMax = 180.0;
|
|
spinRandomMin = "-200";
|
|
spinRandomMax = "200";
|
|
overrideAdvances = 0;
|
|
lifeTimeMS = 206.311;
|
|
orientParticles= 0;
|
|
orientOnVelocity = 1;
|
|
particles = "HealAuraEmitter2Particle";
|
|
};
|
|
|
|
|
|
datablock ParticleData(HealParticle)
|
|
{
|
|
dragCoefficient = 0;
|
|
gravityCoefficient = 0.053871;
|
|
windCoefficient = 0;
|
|
inheritedVelFactor = 1;
|
|
constantAcceleration = 0;
|
|
lifetimeMS = 100;
|
|
lifetimeVarianceMS = 10;
|
|
useInvAlpha = 0;
|
|
spinRandomMin = -200;
|
|
spinRandomMax = 0;
|
|
textureName = "special/blasterBoltCross.PNG";
|
|
times[0] = 0;
|
|
times[1] = 0.01;
|
|
times[2] = 1;
|
|
colors[0] = "0.000000 0.256000 0.000000 1.000000";
|
|
colors[1] = "0.000000 0.528000 0.000000 0.500000";
|
|
colors[2] = "0.000000 0.784000 0.000000 0.000000";
|
|
sizes[0] = 1;
|
|
sizes[1] = 1;
|
|
sizes[2] = 1.18548;
|
|
};
|
|
|
|
datablock ParticleEmitterData(HealEmitter)
|
|
{
|
|
ejectionPeriodMS = 1;
|
|
periodVarianceMS = 0;
|
|
ejectionVelocity = 4.84677;
|
|
velocityVariance = 4.70161;
|
|
ejectionOffset = 0.645161;
|
|
phiReferenceVel = "0";
|
|
phiVariance = "360";
|
|
thetaMin = 0.0;
|
|
thetaMax = 180.0;
|
|
spinRandomMin = "-200";
|
|
spinRandomMax = "200";
|
|
overrideAdvances = 0;
|
|
lifeTimeMS = 206.311;
|
|
orientParticles= 0;
|
|
orientOnVelocity = 1;
|
|
particles = "HealParticle";
|
|
};
|
|
|
|
//Neutral Magic
|
|
|
|
// #######################
|
|
// AUDIO DATABLOCK - FLARE
|
|
// #######################
|
|
|
|
datablock AudioProfile(FlareGrenadeBurnSound)
|
|
{
|
|
filename = "Flame4.wav";
|
|
description = CloseLooping3d;
|
|
preload = true;
|
|
};
|
|
|
|
datablock AudioProfile(FlareGrenadeExplosionSound)
|
|
{
|
|
filename = "Spell_Flame.wav";
|
|
description = AudioClosest3d;
|
|
preload = true;
|
|
};
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Particle effects
|
|
//--------------------------------------
|
|
datablock ParticleData(FlareParticle)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = 0.15;
|
|
inheritedVelFactor = 0.5;
|
|
|
|
lifetimeMS = 1800;
|
|
lifetimeVarianceMS = 200;
|
|
|
|
textureName = "special/flareSpark";
|
|
|
|
colors[0] = "1.0 1.0 1.0 1.0";
|
|
colors[1] = "1.0 1.0 1.0 1.0";
|
|
colors[2] = "1.0 1.0 1.0 0.0";
|
|
|
|
sizes[0] = 0.6;
|
|
sizes[1] = 0.3;
|
|
sizes[2] = 0.1;
|
|
|
|
times[0] = 0.0;
|
|
times[1] = 0.5;
|
|
times[2] = 1.0;
|
|
|
|
};
|
|
datablock ParticleData(FlareParticleg)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = 0.15;
|
|
inheritedVelFactor = 0.5;
|
|
|
|
lifetimeMS = 1800;
|
|
lifetimeVarianceMS = 200;
|
|
|
|
textureName = "special/flareSparkg";
|
|
|
|
colors[0] = "1.0 1.0 1.0 1.0";
|
|
colors[1] = "1.0 1.0 1.0 1.0";
|
|
colors[2] = "1.0 1.0 1.0 0.0";
|
|
|
|
sizes[0] = 0.6;
|
|
sizes[1] = 0.3;
|
|
sizes[2] = 0.1;
|
|
|
|
times[0] = 0.0;
|
|
times[1] = 0.5;
|
|
times[2] = 1.0;
|
|
|
|
};
|
|
datablock ParticleData(FlareParticleb)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = 0.15;
|
|
inheritedVelFactor = 0.5;
|
|
|
|
lifetimeMS = 1800;
|
|
lifetimeVarianceMS = 200;
|
|
|
|
textureName = "special/flareSparkb";
|
|
|
|
colors[0] = "1.0 1.0 1.0 1.0";
|
|
colors[1] = "1.0 1.0 1.0 1.0";
|
|
colors[2] = "1.0 1.0 1.0 0.0";
|
|
|
|
sizes[0] = 0.6;
|
|
sizes[1] = 0.3;
|
|
sizes[2] = 0.1;
|
|
|
|
times[0] = 0.0;
|
|
times[1] = 0.5;
|
|
times[2] = 1.0;
|
|
|
|
};
|
|
datablock ParticleEmitterData(FlareEmitter)
|
|
{
|
|
ejectionPeriodMS = 10;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 1.0;
|
|
velocityVariance = 0.0;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 90.0;
|
|
|
|
orientParticles = true;
|
|
orientOnVelocity = false;
|
|
|
|
particles = "FlareParticle";
|
|
};
|
|
|
|
datablock ParticleEmitterData(FlareEmitterg)
|
|
{
|
|
ejectionPeriodMS = 10;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 1.0;
|
|
velocityVariance = 0.0;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 90.0;
|
|
|
|
orientParticles = true;
|
|
orientOnVelocity = false;
|
|
|
|
particles = "FlareParticleg";
|
|
};
|
|
datablock ParticleEmitterData(FlareEmitterb)
|
|
{
|
|
ejectionPeriodMS = 10;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 1.0;
|
|
velocityVariance = 0.0;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 90.0;
|
|
|
|
orientParticles = true;
|
|
orientOnVelocity = false;
|
|
|
|
particles = "FlareParticleb";
|
|
};
|
|
//--------------------------------------------------------------------------
|
|
// Explosion - Flare Grenade
|
|
//--------------------------------------
|
|
datablock ExplosionData(FlareGrenadeExplosion)
|
|
{
|
|
explosionShape = "energy_explosion.dts";
|
|
soundProfile = FlareGrenadeExplosionSound;
|
|
faceViewer = true;
|
|
explosionScale = "0.1 0.1 0.1";
|
|
};
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Projectile - Flare Grenade
|
|
//--------------------------------------
|
|
datablock FlareProjectileData(Flare)
|
|
{
|
|
projectileShapeName = "grenade_projectile.dts";
|
|
emitterDelay = -1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = false;
|
|
kickBackStrength = 0;
|
|
useLensFlare = false;
|
|
|
|
sound = FlareGrenadeBurnSound;
|
|
explosion = FlareGrenadeExplosion;
|
|
velInheritFactor = 0.5;
|
|
|
|
texture[0] = "special/flare3";
|
|
texture[1] = "special/LensFlare/flare00";
|
|
size = 4.0;
|
|
|
|
baseEmitter = FlareEmitter;
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 10000;
|
|
muzzleVelocity = 15.0;
|
|
drag = 0.1;
|
|
gravityMod = 0.15;
|
|
|
|
hasLight = true;
|
|
lightRadius = 19.0;
|
|
lightColor = "0.5 0.1 0.1 0.1";
|
|
};
|
|
datablock FlareProjectileData(Flareg)
|
|
{
|
|
projectileShapeName = "grenade_projectile.dts";
|
|
emitterDelay = -1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = false;
|
|
kickBackStrength = 0;
|
|
useLensFlare = false;
|
|
|
|
sound = FlareGrenadeBurnSound;
|
|
explosion = FlareGrenadeExplosion;
|
|
velInheritFactor = 0.5;
|
|
|
|
texture[0] = "special/flare3g";
|
|
texture[1] = "special/LensFlare/flare00";
|
|
size = 4.0;
|
|
|
|
baseEmitter = FlareEmitterg;
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 10000;
|
|
muzzleVelocity = 15.0;
|
|
drag = 0.1;
|
|
gravityMod = 0.15;
|
|
|
|
hasLight = true;
|
|
lightRadius = 19.0;
|
|
lightColor = "0.1 0.5 0.1 0.1";
|
|
};
|
|
datablock FlareProjectileData(Flareb)
|
|
{
|
|
projectileShapeName = "grenade_projectile.dts";
|
|
emitterDelay = -1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = false;
|
|
kickBackStrength = 0;
|
|
useLensFlare = false;
|
|
|
|
sound = FlareGrenadeBurnSound;
|
|
explosion = FlareGrenadeExplosion;
|
|
velInheritFactor = 0.5;
|
|
|
|
texture[0] = "special/flare3b";
|
|
texture[1] = "special/LensFlare/flare00";
|
|
size = 4.0;
|
|
|
|
baseEmitter = FlareEmitterb;
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 10000;
|
|
muzzleVelocity = 15.0;
|
|
drag = 0.1;
|
|
gravityMod = 0.15;
|
|
|
|
hasLight = true;
|
|
lightRadius = 19.0;
|
|
lightColor = "0.1 0.1 0.5 0.1";
|
|
};
|
|
//--------------------------------------------------------------------------
|
|
// Projectile - Flare Grenade
|
|
//--------------------------------------
|
|
datablock FlareProjectileData(sFlare)
|
|
{
|
|
projectileShapeName = "grenade_projectile.dts";
|
|
emitterDelay = -1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = false;
|
|
kickBackStrength = 0;
|
|
useLensFlare = false;
|
|
|
|
//sound = FlareGrenadeBurnSound;
|
|
explosion = FlareGrenadeExplosion;
|
|
velInheritFactor = 0.5;
|
|
|
|
texture[0] = "special/flare3";
|
|
texture[1] = "special/LensFlare/flare00";
|
|
size = 1.0;
|
|
|
|
baseEmitter = FlareEmitter;
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 50;
|
|
muzzleVelocity = 10.0;
|
|
drag = 0.1;
|
|
gravityMod = 0.15;
|
|
|
|
hasLight = true;
|
|
lightRadius = 10.0;
|
|
lightColor = "0.5 0.1 0.1 0.1";
|
|
};
|
|
datablock FlareProjectileData(sFlareg)
|
|
{
|
|
projectileShapeName = "grenade_projectile.dts";
|
|
emitterDelay = -1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = false;
|
|
kickBackStrength = 0;
|
|
useLensFlare = false;
|
|
|
|
//sound = FlareGrenadeBurnSound;
|
|
explosion = FlareGrenadeExplosion;
|
|
velInheritFactor = 0.5;
|
|
|
|
texture[0] = "special/flare3g";
|
|
texture[1] = "special/LensFlare/flare00";
|
|
size = 1.0;
|
|
|
|
baseEmitter = FlareEmitterg;
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 50;
|
|
muzzleVelocity = 10.0;
|
|
drag = 0.1;
|
|
gravityMod = 0.15;
|
|
|
|
hasLight = true;
|
|
lightRadius = 10.0;
|
|
lightColor = "0.1 0.5 0.1 0.1";
|
|
};
|
|
datablock FlareProjectileData(sFlareb)
|
|
{
|
|
projectileShapeName = "grenade_projectile.dts";
|
|
emitterDelay = -1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = false;
|
|
kickBackStrength = 0;
|
|
useLensFlare = false;
|
|
|
|
//sound = FlareGrenadeBurnSound;
|
|
explosion = FlareGrenadeExplosion;
|
|
velInheritFactor = 0.5;
|
|
|
|
texture[0] = "special/flare3b";
|
|
texture[1] = "special/LensFlare/flare00";
|
|
size = 1.0;
|
|
|
|
baseEmitter = FlareEmitterb;
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 50;
|
|
muzzleVelocity = 10.0;
|
|
drag = 0.1;
|
|
gravityMod = 0.15;
|
|
|
|
hasLight = true;
|
|
lightRadius = 10.0;
|
|
lightColor = "0.1 0.1 0.5 0.1";
|
|
};
|
|
//Signal Flares
|
|
datablock ExplosionData(SignalFlareGrenadeExplosion)
|
|
{
|
|
explosionShape = "energy_explosion.dts";
|
|
soundProfile = RiftExplosionSound;
|
|
faceViewer = true;
|
|
explosionScale = "0.1 0.1 0.1";
|
|
};
|
|
datablock FlareProjectileData(SignalFlare)
|
|
{
|
|
projectileShapeName = "grenade_projectile.dts";
|
|
emitterDelay = -1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = false;
|
|
kickBackStrength = 0;
|
|
useLensFlare = false;
|
|
|
|
sound = FlareGrenadeBurnSound;
|
|
explosion = SignalFlareGrenadeExplosion;
|
|
velInheritFactor = 0.5;
|
|
|
|
texture[0] = "special/flare3";
|
|
texture[1] = "special/LensFlare/flare00";
|
|
size = 4.0;
|
|
|
|
baseEmitter = FlareEmitter;
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 25000;
|
|
muzzleVelocity = 15.0;
|
|
drag = 0.1;
|
|
gravityMod = 0.15;
|
|
|
|
hasLight = true;
|
|
lightRadius = 19.0;
|
|
lightColor = "0.5 0.1 0.1 0.1";
|
|
};
|
|
datablock FlareProjectileData(SignalFlareg)
|
|
{
|
|
projectileShapeName = "grenade_projectile.dts";
|
|
emitterDelay = -1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = false;
|
|
kickBackStrength = 0;
|
|
useLensFlare = false;
|
|
|
|
sound = FlareGrenadeBurnSound;
|
|
explosion = SignalFlareGrenadeExplosion;
|
|
velInheritFactor = 0.5;
|
|
|
|
texture[0] = "special/flare3g";
|
|
texture[1] = "special/LensFlare/flare00";
|
|
size = 4.0;
|
|
|
|
baseEmitter = FlareEmitterg;
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 25000;
|
|
muzzleVelocity = 15.0;
|
|
drag = 0.1;
|
|
gravityMod = 0.15;
|
|
|
|
hasLight = true;
|
|
lightRadius = 19.0;
|
|
lightColor = "0.1 0.5 0.1 0.1";
|
|
};
|
|
datablock FlareProjectileData(SignalFlareb)
|
|
{
|
|
projectileShapeName = "grenade_projectile.dts";
|
|
emitterDelay = -1;
|
|
directDamage = 0.0;
|
|
hasDamageRadius = false;
|
|
kickBackStrength = 0;
|
|
useLensFlare = false;
|
|
|
|
sound = FlareGrenadeBurnSound;
|
|
explosion = SignalFlareGrenadeExplosion;
|
|
velInheritFactor = 0.5;
|
|
|
|
texture[0] = "special/flare3b";
|
|
texture[1] = "special/LensFlare/flare00";
|
|
size = 4.0;
|
|
|
|
baseEmitter = FlareEmitterb;
|
|
|
|
grenadeElasticity = 0.35;
|
|
grenadeFriction = 0.2;
|
|
armingDelayMS = 25000;
|
|
muzzleVelocity = 15.0;
|
|
drag = 0.1;
|
|
gravityMod = 0.15;
|
|
|
|
hasLight = true;
|
|
lightRadius = 19.0;
|
|
lightColor = "0.1 0.1 0.5 0.1";
|
|
};
|
|
function createEmitter(%pos, %emitter, %rot)
|
|
{
|
|
%dummy = new ParticleEmissionDummy()
|
|
{
|
|
position = %pos;
|
|
rotation = %rot;
|
|
scale = "1 1 1";
|
|
dataBlock = defaultEmissionDummy;
|
|
emitter = %emitter;
|
|
velocity = "1";
|
|
};
|
|
MissionCleanup.add(%dummy);
|
|
%pos = getWords(%dummy.getTransform(), 0, 2);
|
|
%trans = %pos@" "@%rot;
|
|
%dummy.setTransform(%trans);
|
|
|
|
if(isObject(%dummy))
|
|
return %dummy;
|
|
}
|
|
|
|
|
|
function pos(%object)
|
|
{
|
|
%trans = %object.getTransform();
|
|
%pos = getword(%trans, 0) @ " " @ getword(%trans, 1) @ " " @ getword(%trans, 2);
|
|
return %pos;
|
|
}
|
|
//darkhole("-524 1026 150", "",13501,"-524 1026 61",0);
|
|
|
|
|
|
//%p1 =CreateEmitter(-524 1026 150,DHDiskEmitter,"0 0 0");
|
|
//CreateEmitter("-524 1026 50",DHDustEmitter,"1 0 0 3.14");
|
|
//CreateEmitter("-510 911 50",DHHoleEmitter,"0 0 0");
|
|
//CreateEmitter("-510 911 50",ArcEmitter,"0 0 0"); |