Added line 75 and 414
This commit is contained in:
ChocoTaco1 2022-05-30 12:49:09 -04:00
parent 13d6fb08a1
commit 6c7caeee3d

View file

@ -11,7 +11,7 @@
// GrenadeProjectileData : ProjectileData // GrenadeProjectileData : ProjectileData
// SeekerProjectileData : ProjectileData // SeekerProjectileData : ProjectileData
// SniperProjectileData : ProjectileData // SniperProjectileData : ProjectileData
// //
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
//-------------------------------------- Default functions //-------------------------------------- Default functions
// //
@ -33,12 +33,12 @@ function SniperProjectileData::onCollision(%data, %projectile, %targetObject, %m
{ {
%damLoc = firstWord(%targetObject.getDamageLocation(%position)); %damLoc = firstWord(%targetObject.getDamageLocation(%position));
if(%damLoc $= "head") if(%damLoc $= "head")
{ {
%targetObject.getOwnerClient().headShot = 1; %targetObject.getOwnerClient().headShot = 1;
%modifier = %data.rifleHeadMultiplier; %modifier = %data.rifleHeadMultiplier;
} }
else else
{ {
%modifier = 1; %modifier = 1;
%targetObject.getOwnerClient().headShot = 0; %targetObject.getOwnerClient().headShot = 0;
} }
@ -72,10 +72,11 @@ function ShapeBaseImageData::onFire(%data, %obj, %slot)
{ {
%obj.cantFire = 1; %obj.cantFire = 1;
%preventTime = %data.stateTimeoutValue[4]; %preventTime = %data.stateTimeoutValue[4];
//%preventTime = (%data.stateTimeoutValue[4] + %data.stateTimeoutValue[3]) - 0.032;
%obj.reloadSchedule = schedule(%preventTime * 1000, %obj, resetFire, %obj); %obj.reloadSchedule = schedule(%preventTime * 1000, %obj, resetFire, %obj);
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
%data.lightStart = getSimTime(); %data.lightStart = getSimTime();
if( %obj.station $= "" && %obj.isCloaked() ) if( %obj.station $= "" && %obj.isCloaked() )
@ -89,7 +90,7 @@ function ShapeBaseImageData::onFire(%data, %obj, %slot)
else else
{ {
// if( %obj.getEnergyLevel() > 20 ) // if( %obj.getEnergyLevel() > 20 )
// { // {
// %obj.setCloaked( false ); // %obj.setCloaked( false );
// %obj.reCloak = %obj.schedule( 500, "setCloaked", true ); // %obj.reCloak = %obj.schedule( 500, "setCloaked", true );
// } // }
@ -97,15 +98,15 @@ function ShapeBaseImageData::onFire(%data, %obj, %slot)
//We check if the player is still cloaked now. So no need to limit to 20% energy for the cloak in/out animation //We check if the player is still cloaked now. So no need to limit to 20% energy for the cloak in/out animation
%obj.setCloaked( false ); %obj.setCloaked( false );
%obj.reCloak = schedule( 500, 0, "checkCloakState", %obj); %obj.reCloak = schedule( 500, 0, "checkCloakState", %obj);
} }
} }
if( %obj.client > 0 ) if( %obj.client > 0 )
{ {
%obj.setInvincibleMode(0 ,0.00); %obj.setInvincibleMode(0 ,0.00);
%obj.setInvincible( false ); // fire your weapon and your invincibility goes away. %obj.setInvincible( false ); // fire your weapon and your invincibility goes away.
} }
%vehicle = 0; %vehicle = 0;
if(%data.usesEnergy) if(%data.usesEnergy)
{ {
@ -119,11 +120,11 @@ function ShapeBaseImageData::onFire(%data, %obj, %slot)
} }
else else
%energy = %obj.getEnergyLevel(); %energy = %obj.getEnergyLevel();
if(%data.useCapacitor && %data.usesEnergy) if(%data.useCapacitor && %data.usesEnergy)
{ {
if( %useEnergyObj.turretObject.getCapacitorLevel() < %data.minEnergy ) if( %useEnergyObj.turretObject.getCapacitorLevel() < %data.minEnergy )
{ {
return; return;
} }
} }
@ -164,7 +165,7 @@ function ShapeBaseImageData::onFire(%data, %obj, %slot)
%obj.lastProjectile = %p; %obj.lastProjectile = %p;
%obj.deleteLastProjectile = %data.deleteLastProjectile; %obj.deleteLastProjectile = %data.deleteLastProjectile;
MissionCleanup.add(%p); MissionCleanup.add(%p);
// AI hook // AI hook
if(%obj.client) if(%obj.client)
%obj.client.projectile = %p; %obj.client.projectile = %p;
@ -172,9 +173,9 @@ function ShapeBaseImageData::onFire(%data, %obj, %slot)
if(%data.usesEnergy) if(%data.usesEnergy)
{ {
if(%data.useMountEnergy) if(%data.useMountEnergy)
{ {
if( %data.useCapacitor ) if( %data.useCapacitor )
{ {
%vehicle.turretObject.setCapacitorLevel( %vehicle.turretObject.getCapacitorLevel() - %data.fireEnergy ); %vehicle.turretObject.setCapacitorLevel( %vehicle.turretObject.getCapacitorLevel() - %data.fireEnergy );
} }
else else
@ -222,7 +223,7 @@ function MissileLauncherImage::onFire(%data,%obj,%slot)
// z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix. // z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix.
if(!%p) if(!%p)
{ {
return; return;
} }
//-------------------------------------------------------- //--------------------------------------------------------
MissileSet.add(%p); MissileSet.add(%p);
@ -253,7 +254,7 @@ function MissileLauncherImage::onWetFire(%data, %obj, %slot)
// z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix. // z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix.
if(!%p) if(!%p)
{ {
return; return;
} }
//-------------------------------------------------------- //--------------------------------------------------------
MissileSet.add(%p); MissileSet.add(%p);
@ -269,7 +270,7 @@ function MissileBarrelLarge::onFire(%data,%obj,%slot)
// z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix. // z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix.
if(!%p) if(!%p)
{ {
return; return;
} }
//-------------------------------------------------------- //--------------------------------------------------------
MissileSet.add(%p); // z0dd - ZOD, 8/10/03. Bots need this. MissileSet.add(%p); // z0dd - ZOD, 8/10/03. Bots need this.
@ -298,7 +299,7 @@ function MortarImage::onFire(%data,%obj,%slot)
// z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix. // z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix.
if(!%p) if(!%p)
{ {
return; return;
} }
// z0dd - ZOD, 5/22/03, Spawn a mortar at the end of the projectiles lifetime. // z0dd - ZOD, 5/22/03, Spawn a mortar at the end of the projectiles lifetime.
// Addresses long range mortar spam exploit. // Addresses long range mortar spam exploit.
@ -358,7 +359,7 @@ function SniperRifleImage::onFire(%data,%obj,%slot)
%obj.lastProjectile = %p; %obj.lastProjectile = %p;
MissionCleanup.add(%p); MissionCleanup.add(%p);
serverPlay3D(SniperRifleFireSound, %obj.getTransform()); serverPlay3D(SniperRifleFireSound, %obj.getTransform());
// AI hook // AI hook
if(%obj.client) if(%obj.client)
%obj.client.projectile = %p; %obj.client.projectile = %p;
@ -375,7 +376,7 @@ function ElfGunImage::onFire(%data, %obj, %slot)
// z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix. // z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix.
if(!%p) if(!%p)
{ {
return; return;
} }
//-------------------------------------------------------- //--------------------------------------------------------
if(!%p.hasTarget()) if(!%p.hasTarget())
@ -389,7 +390,7 @@ function TargetingLaserImage::onFire(%data,%obj,%slot)
// z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix. // z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix.
if(!%p) if(!%p)
{ {
return; return;
} }
//-------------------------------------------------------- //--------------------------------------------------------
%p.setTarget(%obj.team); %p.setTarget(%obj.team);
@ -403,13 +404,14 @@ function ShockLanceImage::onFire(%this, %obj, %slot)
%obj.setInvincibleMode(0, 0.00); %obj.setInvincibleMode(0, 0.00);
%obj.setInvincible( false ); %obj.setInvincible( false );
} }
// z0dd - ZOD, 4/10/04. ilys - Added rapidfire shocklance fix // z0dd - ZOD, 4/10/04. ilys - Added rapidfire shocklance fix
if(%obj.cantfire !$= "") if(%obj.cantfire !$= "")
return; return;
%obj.cantfire = 1; %obj.cantfire = 1;
%preventTime = %this.stateTimeoutValue[4]; %preventTime = %this.stateTimeoutValue[4];
//%preventTime = (%data.stateTimeoutValue[4] + %data.stateTimeoutValue[3]) - 0.032;
%obj.reloadSchedule = schedule(%preventTime * 1000, %obj, resetFire, %obj); %obj.reloadSchedule = schedule(%preventTime * 1000, %obj, resetFire, %obj);
if( %obj.getEnergyLevel() < %this.minEnergy ) // z0dd - ZOD, 5/22/03. Check energy level first if( %obj.getEnergyLevel() < %this.minEnergy ) // z0dd - ZOD, 5/22/03. Check energy level first
@ -427,7 +429,7 @@ function ShockLanceImage::onFire(%this, %obj, %slot)
else else
{ {
// if( %obj.getEnergyLevel() > 20 ) // if( %obj.getEnergyLevel() > 20 )
// { // {
// %obj.setCloaked( false ); // %obj.setCloaked( false );
// %obj.reCloak = %obj.schedule( 500, "setCloaked", true ); // %obj.reCloak = %obj.schedule( 500, "setCloaked", true );
// } // }
@ -435,7 +437,7 @@ function ShockLanceImage::onFire(%this, %obj, %slot)
//We check if the player is still cloaked now. So no need to limit to 20% energy for the cloak in/out animation //We check if the player is still cloaked now. So no need to limit to 20% energy for the cloak in/out animation
%obj.setCloaked( false ); %obj.setCloaked( false );
%obj.reCloak = schedule( 500, 0, "checkCloakState", %obj); %obj.reCloak = schedule( 500, 0, "checkCloakState", %obj);
} }
} }
%muzzlePos = %obj.getMuzzlePoint(%slot); %muzzlePos = %obj.getMuzzlePoint(%slot);
@ -482,7 +484,7 @@ function ShockLanceImage::onFire(%this, %obj, %slot)
MissionCleanup.add(%p); MissionCleanup.add(%p);
%damageMultiplier = 1.0; %damageMultiplier = 1.0;
if(%hitObj.getDataBlock().getClassName() $= "PlayerData") if(%hitObj.getDataBlock().getClassName() $= "PlayerData")
{ {
// Now we see if we hit from behind... // Now we see if we hit from behind...
@ -512,13 +514,13 @@ function ShockLanceImage::onFire(%this, %obj, %slot)
} }
// -------------------------------------------------------------- // --------------------------------------------------------------
} }
%totalDamage = %this.Projectile.DirectDamage * %damageMultiplier; %totalDamage = %this.Projectile.DirectDamage * %damageMultiplier;
%hitObj.getDataBlock().damageObject(%hitobj, %p.sourceObject, %hitpos, %totalDamage, $DamageType::ShockLance); %hitObj.getDataBlock().damageObject(%hitobj, %p.sourceObject, %hitpos, %totalDamage, $DamageType::ShockLance);
%noDisplay = false; %noDisplay = false;
} }
} }
if( %noDisplay ) if( %noDisplay )
{ {
@ -554,7 +556,7 @@ function ELFProjectileData::zapTarget(%data, %projectile, %target, %targeter)
if( %target.teamDamageStateOnZap || !%teammates ) if( %target.teamDamageStateOnZap || !%teammates )
%target.setRechargeRate(%oldERate - %data.drainEnergy); %target.setRechargeRate(%oldERate - %data.drainEnergy);
else else
%target.setRechargeRate(%oldERate); %target.setRechargeRate(%oldERate);
%projectile.checkELFStatus(%data, %target, %targeter); %projectile.checkELFStatus(%data, %target, %targeter);
} }
@ -705,7 +707,7 @@ function RadiusExplosion(%explosionSource, %position, %radius, %damage, %impulse
//%amount = (1.0 - (%dist / %radius)) * %coverage * %damage; //%amount = (1.0 - (%dist / %radius)) * %coverage * %damage;
//error( "damage: " @ %amount @ " at distance: " @ %dist @ " radius: " @ %radius @ " maxDamage: " @ %damage ); //error( "damage: " @ %amount @ " at distance: " @ %dist @ " radius: " @ %radius @ " maxDamage: " @ %damage );
%data = %targetObject.getDataBlock(); %data = %targetObject.getDataBlock();
%className = %data.className; %className = %data.className;
@ -714,7 +716,7 @@ function RadiusExplosion(%explosionSource, %position, %radius, %damage, %impulse
%p = %targetObject.getWorldBoxCenter(); %p = %targetObject.getWorldBoxCenter();
%momVec = VectorSub(%p, %position); %momVec = VectorSub(%p, %position);
%momVec = VectorNormalize(%momVec); %momVec = VectorNormalize(%momVec);
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// z0dd - ZOD, 7/08/02. More kick when player damages self with disc or mortar. // z0dd - ZOD, 7/08/02. More kick when player damages self with disc or mortar.
// Stronger DJs and mortar jumps without impacting others (mainly HoFs) // Stronger DJs and mortar jumps without impacting others (mainly HoFs)
@ -730,7 +732,7 @@ function RadiusExplosion(%explosionSource, %position, %radius, %damage, %impulse
} }
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
%impulseVec = VectorScale(%momVec, %impulse * (1.0 - (%dist / %radius))); %impulseVec = VectorScale(%momVec, %impulse * (1.0 - (%dist / %radius)));
%doImpulse = true; %doImpulse = true;
} }
@ -740,27 +742,27 @@ function RadiusExplosion(%explosionSource, %position, %radius, %damage, %impulse
%momVec = VectorSub(%p, %position); %momVec = VectorSub(%p, %position);
%momVec = VectorNormalize(%momVec); %momVec = VectorNormalize(%momVec);
%impulseVec = VectorScale(%momVec, %impulse * (1.0 - (%dist / %radius))); %impulseVec = VectorScale(%momVec, %impulse * (1.0 - (%dist / %radius)));
if( getWord( %momVec, 2 ) < -0.5 ) if( getWord( %momVec, 2 ) < -0.5 )
%momVec = "0 0 1"; %momVec = "0 0 1";
// Add obj's velocity into the momentum vector // Add obj's velocity into the momentum vector
%velocity = %targetObject.getVelocity(); %velocity = %targetObject.getVelocity();
//%momVec = VectorNormalize( vectorAdd( %momVec, %velocity) ); //%momVec = VectorNormalize( vectorAdd( %momVec, %velocity) );
%doImpulse = true; %doImpulse = true;
} }
else else
{ {
%momVec = "0 0 1"; %momVec = "0 0 1";
%doImpulse = false; %doImpulse = false;
} }
if(%amount > 0) if(%amount > 0)
%data.damageObject(%targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %explosionSource.theClient, %explosionSource); %data.damageObject(%targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %explosionSource.theClient, %explosionSource);
else if( %explosionSource.getDataBlock().getName() $= "ConcussionGrenadeThrown" && %data.getClassName() $= "PlayerData" ) else if( %explosionSource.getDataBlock().getName() $= "ConcussionGrenadeThrown" && %data.getClassName() $= "PlayerData" )
{ {
%data.applyConcussion( %dist, %radius, %sourceObject, %targetObject ); %data.applyConcussion( %dist, %radius, %sourceObject, %targetObject );
if(!$teamDamage && %sourceObject != %targetObject && %sourceObject.client.team == %targetObject.client.team) 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)); messageClient(%targetObject.client, 'msgTeamConcussionGrenade', '\c1You were hit by %1\'s concussion grenade.', getTaggedString(%sourceObject.client.name));