mirror of
https://github.com/ChocoTaco1/TacoServer.git
synced 2026-01-19 16:14:44 +00:00
Larger dust puffs
For cloak detection Line 1088 Line 1126
This commit is contained in:
parent
8ef58d73d3
commit
8db5e4bf51
|
|
@ -187,7 +187,7 @@ datablock AudioProfile(CorpseLootingSound)
|
|||
preload = true;
|
||||
effect = CorpseLootingEffect;
|
||||
};
|
||||
|
||||
|
||||
datablock AudioProfile(ArmorMoveBubblesSound)
|
||||
{
|
||||
filename = "fx/armor/bubbletrail2.wav";
|
||||
|
|
@ -1085,8 +1085,8 @@ datablock ParticleData(LightPuff)
|
|||
textureName = "particleTest";
|
||||
colors[0] = "0.46 0.36 0.26 0.4";
|
||||
colors[1] = "0.46 0.46 0.36 0.0";
|
||||
sizes[0] = 0.4;
|
||||
sizes[1] = 1.0;
|
||||
sizes[0] = 0.8; //was 0.4
|
||||
sizes[1] = 1.4; //was 1.0
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(LightPuffEmitter)
|
||||
|
|
@ -1123,9 +1123,9 @@ datablock ParticleData(LiftoffDust)
|
|||
colors[0] = "0.46 0.36 0.26 0.0";
|
||||
colors[1] = "0.46 0.46 0.36 0.4";
|
||||
colors[2] = "0.46 0.46 0.36 0.0";
|
||||
sizes[0] = 0.2;
|
||||
sizes[1] = 0.6;
|
||||
sizes[2] = 1.0;
|
||||
sizes[0] = 0.6; //was 0.2
|
||||
sizes[1] = 1.0; //was 0.6
|
||||
sizes[2] = 1.4; //was 1.0
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
|
|
@ -1193,11 +1193,11 @@ datablock DebrisData( PlayerDebris )
|
|||
|
||||
velocity = 18.0;
|
||||
velocityVariance = 12.0;
|
||||
};
|
||||
};
|
||||
|
||||
// z0dd - ZOD, 4/21/02. Altered most of these properties
|
||||
datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile
|
||||
{
|
||||
{
|
||||
emap = true;
|
||||
|
||||
className = Armor;
|
||||
|
|
@ -1316,8 +1316,8 @@ datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile
|
|||
splashEmitter[0] = PlayerFoamDropletsEmitter;
|
||||
splashEmitter[1] = PlayerFoamEmitter;
|
||||
splashEmitter[2] = PlayerBubbleEmitter;
|
||||
mediumSplashSoundVelocity = 10.0;
|
||||
hardSplashSoundVelocity = 20.0;
|
||||
mediumSplashSoundVelocity = 10.0;
|
||||
hardSplashSoundVelocity = 20.0;
|
||||
exitSplashSoundVelocity = 5.0;
|
||||
|
||||
// Controls over slope of runnable/jumpable surfaces
|
||||
|
|
@ -1436,7 +1436,7 @@ datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile
|
|||
|
||||
observeParameters = "0.5 4.5 4.5";
|
||||
shieldEffectScale = "0.7 0.7 1.0";
|
||||
|
||||
|
||||
//Kills autopoints
|
||||
detectsUsingLOSEnemy[1] = true;
|
||||
detectsUsingLOSEnemy[2] = true;
|
||||
|
|
@ -1453,7 +1453,7 @@ datablock DecalData(MediumMaleFootprint)
|
|||
|
||||
// z0dd - ZOD, 4/21/02. Altered most of these properties
|
||||
datablock PlayerData(MediumMaleHumanArmor) : MediumPlayerDamageProfile
|
||||
{
|
||||
{
|
||||
emap = true;
|
||||
|
||||
className = Armor;
|
||||
|
|
@ -1574,7 +1574,7 @@ datablock PlayerData(MediumMaleHumanArmor) : MediumPlayerDamageProfile
|
|||
boxHeadRightPercentage = 1;
|
||||
boxHeadBackPercentage = 0;
|
||||
boxHeadFrontPercentage = 1;
|
||||
|
||||
|
||||
//Foot Prints
|
||||
decalData = MediumMaleFootprint;
|
||||
decalOffset = 0.35;
|
||||
|
|
@ -1594,8 +1594,8 @@ datablock PlayerData(MediumMaleHumanArmor) : MediumPlayerDamageProfile
|
|||
splashEmitter[0] = PlayerFoamDropletsEmitter;
|
||||
splashEmitter[1] = PlayerFoamEmitter;
|
||||
splashEmitter[2] = PlayerBubbleEmitter;
|
||||
mediumSplashSoundVelocity = 10.0;
|
||||
hardSplashSoundVelocity = 20.0;
|
||||
mediumSplashSoundVelocity = 10.0;
|
||||
hardSplashSoundVelocity = 20.0;
|
||||
exitSplashSoundVelocity = 5.0;
|
||||
|
||||
footstepSplashHeight = 0.35;
|
||||
|
|
@ -1694,7 +1694,7 @@ datablock PlayerData(MediumMaleHumanArmor) : MediumPlayerDamageProfile
|
|||
observeParameters = "0.5 4.5 4.5";
|
||||
|
||||
shieldEffectScale = "0.7 0.7 1.0";
|
||||
|
||||
|
||||
//Kills autopoints
|
||||
detectsUsingLOSEnemy[1] = true;
|
||||
detectsUsingLOSEnemy[2] = true;
|
||||
|
|
@ -1761,7 +1761,7 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile
|
|||
maxDamage = 1.32;
|
||||
maxEnergy = 110;
|
||||
repairRate = 0.0033;
|
||||
|
||||
|
||||
//Value changed halfway between base and classic.
|
||||
//Classic is 54, Base is 75
|
||||
//Shield breaks right at two mine-disc
|
||||
|
|
@ -1853,8 +1853,8 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile
|
|||
splashEmitter[0] = PlayerFoamDropletsEmitter;
|
||||
splashEmitter[1] = PlayerFoamEmitter;
|
||||
splashEmitter[2] = PlayerBubbleEmitter;
|
||||
mediumSplashSoundVelocity = 10.0;
|
||||
hardSplashSoundVelocity = 20.0;
|
||||
mediumSplashSoundVelocity = 10.0;
|
||||
hardSplashSoundVelocity = 20.0;
|
||||
exitSplashSoundVelocity = 5.0;
|
||||
|
||||
footstepSplashHeight = 0.35;
|
||||
|
|
@ -1953,7 +1953,7 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile
|
|||
observeParameters = "0.5 4.5 4.5";
|
||||
|
||||
shieldEffectScale = "0.7 0.7 1.0";
|
||||
|
||||
|
||||
//Kills autopoints
|
||||
detectsUsingLOSEnemy[1] = true;
|
||||
detectsUsingLOSEnemy[2] = true;
|
||||
|
|
@ -1998,7 +1998,7 @@ datablock PlayerData(LightMaleBiodermArmor) : LightMaleHumanArmor
|
|||
|
||||
|
||||
debrisShapeName = "bio_player_debris.dts";
|
||||
|
||||
|
||||
//Foot Prints
|
||||
decalData = LightBiodermFootprint;
|
||||
decalOffset = 0.3;
|
||||
|
|
@ -2023,7 +2023,7 @@ datablock PlayerData(MediumMaleBiodermArmor) : MediumMaleHumanArmor
|
|||
debrisShapeName = "bio_player_debris.dts";
|
||||
|
||||
//Foot Prints
|
||||
decalData = MediumBiodermFootprint;
|
||||
decalData = MediumBiodermFootprint;
|
||||
decalOffset = 0.35;
|
||||
|
||||
waterBreathSound = WaterBreathBiodermSound;
|
||||
|
|
@ -2049,7 +2049,7 @@ datablock PlayerData(HeavyMaleBiodermArmor) : HeavyMaleHumanArmor
|
|||
//Foot Prints
|
||||
decalData = HeavyBiodermFootprint;
|
||||
decalOffset = 0.4;
|
||||
|
||||
|
||||
waterBreathSound = WaterBreathBiodermSound;
|
||||
};
|
||||
|
||||
|
|
@ -2122,17 +2122,17 @@ function Armor::onMount(%this,%obj,%vehicle,%node)
|
|||
|
||||
if(!%obj.inStation)
|
||||
%obj.lastWeapon = (%obj.getMountedImage($WeaponSlot) == 0 ) ? "" : %obj.getMountedImage($WeaponSlot).item;
|
||||
|
||||
|
||||
%obj.unmountImage($WeaponSlot);
|
||||
|
||||
|
||||
if(!%obj.client.isAIControlled())
|
||||
{
|
||||
%obj.setControlObject(%vehicle);
|
||||
%obj.client.setObjectActiveImage(%vehicle, 2);
|
||||
}
|
||||
|
||||
|
||||
//E3 respawn...
|
||||
|
||||
|
||||
if(%obj == %obj.lastVehicle.lastPilot && %obj.lastVehicle != %vehicle)
|
||||
{
|
||||
schedule(15000, %obj.lastVehicle,"vehicleAbandonTimeOut", %obj.lastVehicle);
|
||||
|
|
@ -2140,14 +2140,14 @@ function Armor::onMount(%this,%obj,%vehicle,%node)
|
|||
}
|
||||
if(%vehicle.lastPilot !$= "" && %vehicle == %vehicle.lastPilot.lastVehicle)
|
||||
%vehicle.lastPilot.lastVehicle = "";
|
||||
|
||||
|
||||
%vehicle.abandon = false;
|
||||
%vehicle.lastPilot = %obj;
|
||||
%obj.lastVehicle = %vehicle;
|
||||
|
||||
// update the vehicle's team
|
||||
if((%vehicle.getTarget() != -1) && %vehicle.getDatablock().cantTeamSwitch $= "")
|
||||
{
|
||||
{
|
||||
setTargetSensorGroup(%vehicle.getTarget(), %obj.client.getSensorGroup());
|
||||
if( %vehicle.turretObject > 0 )
|
||||
setTargetSensorGroup(%vehicle.turretObject.getTarget(), %obj.client.getSensorGroup());
|
||||
|
|
@ -2207,9 +2207,9 @@ function Armor::onUnmount( %this, %obj, %vehicle, %node )
|
|||
%obj.use(%obj.lastWeapon);
|
||||
else
|
||||
{
|
||||
if(%obj.getMountedImage($WeaponSlot) == 0)
|
||||
if(%obj.getMountedImage($WeaponSlot) == 0)
|
||||
%obj.selectWeaponSlot( 0 );
|
||||
}
|
||||
}
|
||||
//Inform gunner position when pilot leaves...
|
||||
//if(%vehicle.getDataBlock().showPilotInfo !$= "")
|
||||
// if((%gunner = %vehicle.getMountNodeObject(1)) != 0)
|
||||
|
|
@ -2271,7 +2271,7 @@ function Armor::onCollision(%this,%obj,%col,%forceVehicleNode)
|
|||
//to ensure they mount the turret before the passenger seat, regardless of where they collide...
|
||||
if (%obj.client.isAIControlled())
|
||||
{
|
||||
%transform = %col.getTransform();
|
||||
%transform = %col.getTransform();
|
||||
|
||||
//either the AI is *required* to pilot, or they'll pick the first available passenger seat
|
||||
if (%client.pilotVehicle)
|
||||
|
|
@ -2312,7 +2312,7 @@ function Armor::onCollision(%this,%obj,%col,%forceVehicleNode)
|
|||
}
|
||||
if(%col.noEnemyControl && %obj.team != %col.team)
|
||||
return;
|
||||
|
||||
|
||||
commandToClient(%obj.client,'SetDefaultVehicleKeys', true);
|
||||
//If pilot or passenger then bind a few extra keys
|
||||
if(%node == 0)
|
||||
|
|
@ -2329,7 +2329,7 @@ function Armor::onCollision(%this,%obj,%col,%forceVehicleNode)
|
|||
if (%obj.client.isAIControlled() && %node == 1 && (%type $= "BomberFlyer" || %type $= "AssaultVehicle"))
|
||||
{
|
||||
//%client.player.setActionThread(%col.getDataBlock().mountPose[0], true, true);
|
||||
%client.player.setActionThread(sitting, true, true);
|
||||
%client.player.setActionThread(sitting, true, true);
|
||||
}
|
||||
|
||||
%col.mountObject(%obj,%node);
|
||||
|
|
@ -2350,7 +2350,7 @@ function Armor::onCollision(%this,%obj,%col,%forceVehicleNode)
|
|||
%gotSomething = false;
|
||||
// it's corpse-looting time!
|
||||
// weapons -- don't pick up more than you are allowed to carry!
|
||||
for(%i = 0; ( %obj.weaponCount < %obj.getDatablock().maxWeapons ) && $InvWeapon[%i] !$= ""; %i++)
|
||||
for(%i = 0; ( %obj.weaponCount < %obj.getDatablock().maxWeapons ) && $InvWeapon[%i] !$= ""; %i++)
|
||||
{
|
||||
%weap = $NameToInv[$InvWeapon[%i]];
|
||||
if ( %col.hasInventory( %weap ) )
|
||||
|
|
@ -2498,7 +2498,7 @@ function Player::resetFlagTossWait(%this)
|
|||
|
||||
function Player::resetSitMessage(%obj)
|
||||
{
|
||||
%obj.noSitMessage = false;
|
||||
%obj.noSitMessage = false;
|
||||
}
|
||||
|
||||
function Player::setInvincible(%this, %val)
|
||||
|
|
@ -2508,9 +2508,9 @@ function Player::setInvincible(%this, %val)
|
|||
|
||||
function Player::causedRecentDamage(%this, %val)
|
||||
{
|
||||
%this.causedRecentDamage = %val;
|
||||
%this.causedRecentDamage = %val;
|
||||
}
|
||||
|
||||
|
||||
function hasLargePack(%player)
|
||||
{
|
||||
%pack = %player.getMountedImage($BackpackSlot);
|
||||
|
|
@ -2609,7 +2609,7 @@ function Armor::doDismount(%this, %obj, %forced)
|
|||
%obj.unmount();
|
||||
if(%obj.mVehicle)
|
||||
%obj.mVehicle.getDataBlock().playerDismounted(%obj.mVehicle, %obj);
|
||||
|
||||
|
||||
// bots don't change their control objects when in vehicles
|
||||
if(!%obj.client.isAIControlled())
|
||||
{
|
||||
|
|
@ -2652,7 +2652,7 @@ function resetObserveFollow( %client, %dismount )
|
|||
if ( %client.observers[%i].clientObserve != %client )
|
||||
continue;
|
||||
|
||||
%client.observers[%i].camera.setOrbitMode( %client.player, %client.player.getTransform(), 0.5, 4.5, 4.5);
|
||||
%client.observers[%i].camera.setOrbitMode( %client.player, %client.player.getTransform(), 0.5, 4.5, 4.5);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -2666,7 +2666,7 @@ function resetObserveFollow( %client, %dismount )
|
|||
%params = %client.player.getTransform();
|
||||
else
|
||||
%params = %mount.getDataBlock().observeParameters;
|
||||
|
||||
|
||||
for( %i = 0; %i < %client.observeCount; %i++ )
|
||||
{
|
||||
// z0dd - ZOD, 5/21/03. Make sure this client actually obs this client
|
||||
|
|
@ -2675,7 +2675,7 @@ function resetObserveFollow( %client, %dismount )
|
|||
|
||||
%client.observers[%i].camera.setOrbitMode(%mount, %mount.getTransform(), getWord( %params, 0 ), getWord( %params, 1 ), getWord( %params, 2 ));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -2683,7 +2683,7 @@ function resetObserveFollow( %client, %dismount )
|
|||
|
||||
function Player::scriptKill(%player, %damageType)
|
||||
{
|
||||
%player.scriptKilled = 1;
|
||||
%player.scriptKilled = 1;
|
||||
%player.setInvincible(false);
|
||||
%player.damage(0, %player.getPosition(), 10000, %damageType);
|
||||
}
|
||||
|
|
@ -2695,7 +2695,7 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
|||
return;
|
||||
|
||||
//----------------------------------------------------------------
|
||||
// z0dd - ZOD, 6/09/02. Check to see if this vehicle is destroyed,
|
||||
// z0dd - ZOD, 6/09/02. Check to see if this vehicle is destroyed,
|
||||
// if it is do no damage. Fixes vehicle ghosting bug. We do not
|
||||
// check for isObject here, destroyed objects fail it even though
|
||||
// they exist as objects, go figure.
|
||||
|
|
@ -2730,7 +2730,7 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
|||
}
|
||||
else
|
||||
{
|
||||
if(%damageType != $DamageType::Laser && %damageType != $DamageType::Bullet && %damageType != $DamageType::Blaster)
|
||||
if(%damageType != $DamageType::Laser && %damageType != $DamageType::Bullet && %damageType != $DamageType::Blaster)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -2740,7 +2740,7 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
|||
|
||||
%targetClient = %targetObject.getOwnerClient();
|
||||
if(isObject(%mineSC))
|
||||
%sourceClient = %mineSC;
|
||||
%sourceClient = %mineSC;
|
||||
else
|
||||
%sourceClient = isObject(%sourceObject) ? %sourceObject.getOwnerClient() : 0;
|
||||
|
||||
|
|
@ -2754,7 +2754,7 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
|||
else if(%damageType == $DamageType::Suicide)
|
||||
%sourceTeam = 0;
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
// z0dd - ZOD, 4/8/02. Check to see if this turret has a valid owner, if not clear the variable.
|
||||
// z0dd - ZOD, 4/8/02. Check to see if this turret has a valid owner, if not clear the variable.
|
||||
else if(isObject(%sourceObject) && %sourceObject.getClassName() $= "Turret")
|
||||
{
|
||||
%sourceTeam = getTargetSensorGroup(%sourceObject.getTarget());
|
||||
|
|
@ -2794,11 +2794,11 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
|||
%damageScale = %data.damageScale[%damageType];
|
||||
if(%damageScale !$= "")
|
||||
%amount *= %damageScale;
|
||||
|
||||
|
||||
%flash = %targetObject.getDamageFlash() + (%amount * 2);
|
||||
if (%flash > 0.75)
|
||||
%flash = 0.75;
|
||||
|
||||
|
||||
// Teratos: Originally from Eolk? Mine+Disc tracking/death message support.
|
||||
// No Schedules by DarkTiger Ver.2
|
||||
%targetClient.mineDisc = false;
|
||||
|
|
@ -2807,17 +2807,17 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
|||
case $DamageType::Disc:
|
||||
if((getSimTime() - %targetClient.mdcTime1) < 256)
|
||||
%targetClient.mineDisc = true;
|
||||
|
||||
%targetClient.mdcTime2 = getSimTime();
|
||||
|
||||
%targetClient.mdcTime2 = getSimTime();
|
||||
|
||||
case $DamageType::Mine:
|
||||
if((getSimTime() - %targetClient.mdcTime2) < 256)
|
||||
%targetClient.mineDisc = true;
|
||||
|
||||
%targetClient.mdcTime1 = getSimTime();
|
||||
|
||||
%targetClient.mdcTime1 = getSimTime();
|
||||
}
|
||||
// -- End Mine+Disc insert.
|
||||
|
||||
|
||||
%previousDamage = %targetObject.getDamagePercent();
|
||||
%targetObject.setDamageFlash(%flash);
|
||||
%targetObject.applyDamage(%amount);
|
||||
|
|
@ -2826,49 +2826,49 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
|||
%targetClient.lastDamagedBy = %damagingClient;
|
||||
%targetClient.lastDamaged = getSimTime();
|
||||
|
||||
//now call the "onKilled" function if the client was... you know...
|
||||
//now call the "onKilled" function if the client was... you know...
|
||||
if(%targetObject.getState() $= "Dead")
|
||||
{
|
||||
// where did this guy get it?
|
||||
%damLoc = %targetObject.getDamageLocation(%position);
|
||||
|
||||
|
||||
// should this guy be blown apart?
|
||||
if( %damageType == $DamageType::Explosion ||
|
||||
if( %damageType == $DamageType::Explosion ||
|
||||
%damageType == $DamageType::TankMortar ||
|
||||
%damageType == $DamageType::Mortar ||
|
||||
%damageType == $DamageType::MortarTurret ||
|
||||
%damageType == $DamageType::BomberBombs ||
|
||||
%damageType == $DamageType::SatchelCharge ||
|
||||
%damageType == $DamageType::Missile )
|
||||
%damageType == $DamageType::Missile )
|
||||
{
|
||||
if( %previousDamage >= 0.35 ) // only if <= 35 percent damage remaining
|
||||
{
|
||||
%targetObject.setMomentumVector(%momVec);
|
||||
%targetObject.blowup();
|
||||
%targetObject.blowup();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// this should be funny...
|
||||
if( %damageType == $DamageType::VehicleSpawn )
|
||||
{
|
||||
{
|
||||
%targetObject.setMomentumVector("0 0 1");
|
||||
%targetObject.blowup();
|
||||
}
|
||||
|
||||
|
||||
// If we were killed, max out the flash
|
||||
%targetObject.setDamageFlash(0.75);
|
||||
|
||||
|
||||
%damLoc = %targetObject.getDamageLocation(%position);
|
||||
Game.onClientKilled(%targetClient, %sourceClient, %damageType, %sourceObject, %damLoc);
|
||||
}
|
||||
else if ( %amount > 0.1 )
|
||||
{
|
||||
{
|
||||
if( %targetObject.station $= "" && %targetObject.isCloaked() )
|
||||
{
|
||||
%targetObject.setCloaked( false );
|
||||
%targetObject.reCloak = %targetObject.schedule( 500, "setCloaked", true );
|
||||
%targetObject.reCloak = %targetObject.schedule( 500, "setCloaked", true );
|
||||
}
|
||||
|
||||
|
||||
playPain( %targetObject );
|
||||
}
|
||||
}
|
||||
|
|
@ -2883,101 +2883,101 @@ function Armor::applyConcussion( %this, %dist, %radius, %sourceObject, %targetOb
|
|||
{
|
||||
%percentage = 1 - ( %dist / %radius );
|
||||
%random = getRandom();
|
||||
|
||||
|
||||
if( %sourceObject == %targetObject )
|
||||
{
|
||||
{
|
||||
%flagChance = 1.0;
|
||||
%itemChance = 1.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
%flagChance = 0.75;
|
||||
%itemChance = 0.75;
|
||||
%itemChance = 0.75;
|
||||
}
|
||||
|
||||
|
||||
%probabilityFlag = %flagChance * %percentage;
|
||||
%probabilityItem = %itemChance * %percentage;
|
||||
|
||||
%probabilityItem = %itemChance * %percentage;
|
||||
|
||||
if( %random <= %probabilityFlag )
|
||||
Game.applyConcussion( %targetObject );
|
||||
|
||||
Game.applyConcussion( %targetObject );
|
||||
|
||||
if( %random <= %probabilityItem )
|
||||
{
|
||||
%player = %targetObject;
|
||||
%numWeapons = 0;
|
||||
|
||||
|
||||
// blaster 0
|
||||
// plasma 1
|
||||
// chain 2
|
||||
// disc 3
|
||||
// disc 3
|
||||
// grenade 4
|
||||
// snipe 5
|
||||
// elf 6
|
||||
// mortar 7
|
||||
|
||||
|
||||
//get our inventory
|
||||
if( %weaps[0] = %player.getInventory("Blaster") > 0 ) %numWeapons++;
|
||||
if( %weaps[1] = %player.getInventory("Plasma") > 0 ) %numWeapons++;
|
||||
if( %weaps[2] = %player.getInventory("Chaingun") > 0 ) %numWeapons++;
|
||||
if( %weaps[3] = %player.getInventory("Disc") > 0 ) %numWeapons++;
|
||||
if( %weaps[4] = %player.getInventory("GrenadeLauncher") > 0 ) %numWeapons++;
|
||||
if( %weaps[0] = %player.getInventory("Blaster") > 0 ) %numWeapons++;
|
||||
if( %weaps[1] = %player.getInventory("Plasma") > 0 ) %numWeapons++;
|
||||
if( %weaps[2] = %player.getInventory("Chaingun") > 0 ) %numWeapons++;
|
||||
if( %weaps[3] = %player.getInventory("Disc") > 0 ) %numWeapons++;
|
||||
if( %weaps[4] = %player.getInventory("GrenadeLauncher") > 0 ) %numWeapons++;
|
||||
if( %weaps[5] = %player.getInventory("SniperRifle") > 0 ) %numWeapons++;
|
||||
if( %weaps[6] = %player.getInventory("ELFGun") > 0 ) %numWeapons++;
|
||||
if( %weaps[7] = %player.getInventory("Mortar") > 0 ) %numWeapons++;
|
||||
|
||||
|
||||
%foundWeapon = false;
|
||||
%attempts = 0;
|
||||
|
||||
if( %numWeapons > 0 )
|
||||
{
|
||||
|
||||
if( %numWeapons > 0 )
|
||||
{
|
||||
while( !%foundWeapon )
|
||||
{
|
||||
%rand = mFloor( getRandom() * 8 );
|
||||
if( %weaps[ %rand ] )
|
||||
{
|
||||
%foundWeapon = true;
|
||||
|
||||
|
||||
switch ( %rand )
|
||||
{
|
||||
case 0:
|
||||
%player.use("Blaster");
|
||||
%player.use("Blaster");
|
||||
case 1:
|
||||
%player.use("Plasma");
|
||||
%player.use("Plasma");
|
||||
case 2:
|
||||
%player.use("Chaingun");
|
||||
%player.use("Chaingun");
|
||||
case 3:
|
||||
%player.use("Disc");
|
||||
%player.use("Disc");
|
||||
case 4:
|
||||
%player.use("GrenadeLauncher");
|
||||
case 5:
|
||||
%player.use("SniperRifle");
|
||||
%player.use("GrenadeLauncher");
|
||||
case 5:
|
||||
%player.use("SniperRifle");
|
||||
case 6:
|
||||
%player.use("ElfGun");
|
||||
%player.use("ElfGun");
|
||||
case 7:
|
||||
%player.use("Mortar");
|
||||
%player.use("Mortar");
|
||||
}
|
||||
|
||||
|
||||
%image = %player.getMountedImage( $WeaponSlot );
|
||||
%player.throw( %image.item );
|
||||
%player.client.setWeaponsHudItem( %image.item, 0, 0 );
|
||||
%player.throwPack();
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
%attempts++;
|
||||
if( %attempts > 10 )
|
||||
%foundWeapon = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
%targetObject.throwPack();
|
||||
%targetObject.throwWeapon();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -3000,7 +3000,7 @@ function playPain( %obj )
|
|||
%client = %obj.client;
|
||||
%random = getRandom(1) + 1;
|
||||
%desc = AudioClosest3d;
|
||||
|
||||
|
||||
playTargetAudio( %client.target, $PainCry[%random], %desc, false);
|
||||
}
|
||||
|
||||
|
|
@ -3050,8 +3050,8 @@ function Player::pickup(%this,%obj,%amount)
|
|||
%this.getMountedImage($BackpackSlot) != 0)
|
||||
return 0;
|
||||
// don't pick up a weapon (other than targeting laser) if player's at maxWeapons
|
||||
else if(%data.className $= Weapon
|
||||
&& %data.getName() !$= "TargetingLaser" // Special case
|
||||
else if(%data.className $= Weapon
|
||||
&& %data.getName() !$= "TargetingLaser" // Special case
|
||||
&& %this.weaponCount >= %this.getDatablock().maxWeapons)
|
||||
return 0;
|
||||
// don't allow players to throw large packs at pilots (thanks Wizard)
|
||||
|
|
@ -3067,7 +3067,7 @@ function Player::use( %this,%data )
|
|||
return false;
|
||||
|
||||
// Convert the word "Backpack" to whatever is in the backpack slot.
|
||||
if ( %data $= "Backpack" )
|
||||
if ( %data $= "Backpack" )
|
||||
{
|
||||
if ( %this.inStation )
|
||||
return false;
|
||||
|
|
@ -3082,17 +3082,17 @@ function Player::use( %this,%data )
|
|||
messageClient( %this.client, 'MsgCantUsePack', '\c2You can\'t use your pack while in a weaponry position.~wfx/misc/misc.error.wav' );
|
||||
return( false );
|
||||
}
|
||||
|
||||
|
||||
%image = %this.getMountedImage( $BackpackSlot );
|
||||
if ( %image )
|
||||
%data = %image.item;
|
||||
}
|
||||
|
||||
// Can't use some items when piloting or your a weapon operator
|
||||
if ( %this.isPilot() || %this.isWeaponOperator() )
|
||||
if ( %this.isPilot() || %this.isWeaponOperator() )
|
||||
if ( %data.getName() !$= "RepairKit" )
|
||||
return false;
|
||||
|
||||
|
||||
return ShapeBase::use( %this, %data );
|
||||
}
|
||||
|
||||
|
|
@ -3125,13 +3125,13 @@ function Player::isWeaponOperator(%this)
|
|||
}
|
||||
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
|
||||
function Player::liquidDamage(%obj, %data, %damageAmount, %damageType)
|
||||
{
|
||||
if(%obj.getState() !$= "Dead")
|
||||
{
|
||||
%data.damageObject(%obj, 0, "0 0 0", %damageAmount, %damageType);
|
||||
%data.damageObject(%obj, 0, "0 0 0", %damageAmount, %damageType);
|
||||
%obj.lDamageSchedule = %obj.schedule(50, "liquidDamage", %data, %damageAmount, %damageType);
|
||||
}
|
||||
else
|
||||
|
|
@ -3160,7 +3160,7 @@ function Armor::onEnterLiquid(%data, %obj, %coverage, %type)
|
|||
case 5:
|
||||
//Hot Lava
|
||||
%obj.liquidDamage(%data, $DamageHotLava, $DamageType::Lava);
|
||||
case 6:
|
||||
case 6:
|
||||
//Crusty Lava
|
||||
%obj.liquidDamage(%data, $DamageCrustyLava, $DamageType::Lava);
|
||||
case 7:
|
||||
|
|
@ -3281,46 +3281,46 @@ function playDeathAnimation(%player, %damageLocation, %type)
|
|||
{
|
||||
%vertPos = firstWord(%damageLocation);
|
||||
%quadrant = getWord(%damageLocation, 1);
|
||||
|
||||
|
||||
//echo("vert Pos: " @ %vertPos);
|
||||
//echo("quad: " @ %quadrant);
|
||||
|
||||
if( %type == $DamageType::Explosion || %type == $DamageType::Mortar || %type == $DamageType::Grenade)
|
||||
|
||||
if( %type == $DamageType::Explosion || %type == $DamageType::Mortar || %type == $DamageType::Grenade)
|
||||
{
|
||||
if(%quadrant $= "front_left" || %quadrant $= "front_right")
|
||||
if(%quadrant $= "front_left" || %quadrant $= "front_right")
|
||||
%curDie = $PlayerDeathAnim::ExplosionBlowBack;
|
||||
else
|
||||
%curDie = $PlayerDeathAnim::TorsoBackFallForward;
|
||||
}
|
||||
else if(%vertPos $= "head")
|
||||
else if(%vertPos $= "head")
|
||||
{
|
||||
if(%quadrant $= "front_left" || %quadrant $= "front_right" )
|
||||
if(%quadrant $= "front_left" || %quadrant $= "front_right" )
|
||||
%curDie = $PlayerDeathAnim::HeadFrontDirect;
|
||||
else
|
||||
else
|
||||
%curDie = $PlayerDeathAnim::HeadBackFallForward;
|
||||
}
|
||||
else if(%vertPos $= "torso")
|
||||
else if(%vertPos $= "torso")
|
||||
{
|
||||
if(%quadrant $= "front_left" )
|
||||
if(%quadrant $= "front_left" )
|
||||
%curDie = $PlayerDeathAnim::TorsoLeftSpinDeath;
|
||||
else if(%quadrant $= "front_right")
|
||||
else if(%quadrant $= "front_right")
|
||||
%curDie = $PlayerDeathAnim::TorsoRightSpinDeath;
|
||||
else if(%quadrant $= "back_left" )
|
||||
else if(%quadrant $= "back_left" )
|
||||
%curDie = $PlayerDeathAnim::TorsoBackFallForward;
|
||||
else if(%quadrant $= "back_right")
|
||||
else if(%quadrant $= "back_right")
|
||||
%curDie = $PlayerDeathAnim::TorsoBackFallForward;
|
||||
}
|
||||
else if (%vertPos $= "legs")
|
||||
else if (%vertPos $= "legs")
|
||||
{
|
||||
if(%quadrant $= "front_left" || %quadrant $= "back_left")
|
||||
if(%quadrant $= "front_left" || %quadrant $= "back_left")
|
||||
%curDie = $PlayerDeathAnim::LegsLeftGimp;
|
||||
if(%quadrant $= "front_right" || %quadrant $= "back_right")
|
||||
if(%quadrant $= "front_right" || %quadrant $= "back_right")
|
||||
%curDie = $PlayerDeathAnim::LegsRightGimp;
|
||||
}
|
||||
|
||||
|
||||
if(%curDie $= "" || %curDie < 1 || %curDie > 11)
|
||||
%curDie = 1;
|
||||
|
||||
|
||||
%player.setActionThread("Death" @ %curDie);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue