TraceAttack: Added support for weapon-specific penetration values.
Counter-Strike now uses those, values are those from CS:S's 2011 weapon scripts.
This commit is contained in:
parent
ae7da17d0f
commit
051d07fbcf
24 changed files with 37 additions and 5 deletions
|
@ -24,7 +24,12 @@ void FX_Explosion(vector vecPos);
|
||||||
void FX_GibHuman(vector vecPos);
|
void FX_GibHuman(vector vecPos);
|
||||||
void Footsteps_Update(void);
|
void Footsteps_Update(void);
|
||||||
void Vox_Broadcast(string sMessage);
|
void Vox_Broadcast(string sMessage);
|
||||||
void TraceAttack_FireBullets(int , vector, int, vector, int);
|
|
||||||
|
void TraceAttack_FireBullets(int,vector,int,vector,int);
|
||||||
|
#ifdef BULLETPENETRATION
|
||||||
|
void TraceAttack_SetPenetrationPower(int);
|
||||||
|
#endif
|
||||||
|
|
||||||
void Damage_Radius(vector, entity, float, float, int, int);
|
void Damage_Radius(vector, entity, float, float, int, int);
|
||||||
void Damage_Apply(entity, entity, float, int, int);
|
void Damage_Apply(entity, entity, float, int, int);
|
||||||
void Client_TriggerCamera(entity eTarget, vector vecPos, vector vEndPos, float fResetTime);
|
void Client_TriggerCamera(entity eTarget, vector vecPos, vector vEndPos, float fResetTime);
|
||||||
|
|
|
@ -102,7 +102,7 @@ TraceAttack_FireSingle(vector vecPos, vector vAngle, int iDamage, int iWeapon)
|
||||||
#ifdef BULLETPENETRATION
|
#ifdef BULLETPENETRATION
|
||||||
if (iTotalPenetrations > 0) {
|
if (iTotalPenetrations > 0) {
|
||||||
iTotalPenetrations -= 1;
|
iTotalPenetrations -= 1;
|
||||||
TraceAttack_FireSingle(trace_endpos + (v_forward * 2), vAngle, iDamage, iWeapon);
|
TraceAttack_FireSingle(trace_endpos + (v_forward * 2), vAngle, iDamage / 2, iWeapon);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -115,9 +115,6 @@ TraceAttack_FireBullets(int iShots, vector vecPos, int iDamage, vector vecSpread
|
||||||
makevectors(self.v_angle);
|
makevectors(self.v_angle);
|
||||||
|
|
||||||
while (iShots > 0) {
|
while (iShots > 0) {
|
||||||
#ifdef BULLETPENETRATION
|
|
||||||
iTotalPenetrations = 2;
|
|
||||||
#endif
|
|
||||||
vDir = aim(self, 100000);
|
vDir = aim(self, 100000);
|
||||||
#ifndef CSTRIKE
|
#ifndef CSTRIKE
|
||||||
vDir += random(-1,1) * vecSpread[0] * v_right;
|
vDir += random(-1,1) * vecSpread[0] * v_right;
|
||||||
|
@ -142,3 +139,11 @@ TraceAttack_FireBullets(int iShots, vector vecPos, int iDamage, vector vecSpread
|
||||||
iShots--;
|
iShots--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef BULLETPENETRATION
|
||||||
|
void
|
||||||
|
TraceAttack_SetPenetrationPower(int power)
|
||||||
|
{
|
||||||
|
iTotalPenetrations = power;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -132,6 +132,7 @@ w_ak47_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(1);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 36, [accuracy,accuracy], WEAPON_AK47);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 36, [accuracy,accuracy], WEAPON_AK47);
|
||||||
pl.ak47_mag--;
|
pl.ak47_mag--;
|
||||||
|
|
||||||
|
|
|
@ -133,6 +133,7 @@ w_aug_primary(void)
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
pl.aug_mag--;
|
pl.aug_mag--;
|
||||||
|
TraceAttack_SetPenetrationPower(1);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 32, [accuracy,accuracy], WEAPON_AUG);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 32, [accuracy,accuracy], WEAPON_AUG);
|
||||||
|
|
||||||
if (self.flags & FL_CROUCHING)
|
if (self.flags & FL_CROUCHING)
|
||||||
|
|
|
@ -181,6 +181,7 @@ w_awp_primary(void)
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
pl.awp_mag--;
|
pl.awp_mag--;
|
||||||
|
TraceAttack_SetPenetrationPower(2);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 115, [accuracy,accuracy], WEAPON_AWP);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 115, [accuracy,accuracy], WEAPON_AWP);
|
||||||
|
|
||||||
if (self.flags & FL_CROUCHING)
|
if (self.flags & FL_CROUCHING)
|
||||||
|
|
|
@ -136,6 +136,7 @@ w_deagle_primary(void)
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
pl.deagle_mag--;
|
pl.deagle_mag--;
|
||||||
|
TraceAttack_SetPenetrationPower(1);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 54, [accuracy,accuracy], WEAPON_DEAGLE);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 54, [accuracy,accuracy], WEAPON_DEAGLE);
|
||||||
|
|
||||||
if (self.flags & FL_CROUCHING)
|
if (self.flags & FL_CROUCHING)
|
||||||
|
|
|
@ -146,6 +146,7 @@ w_elites_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 45, [accuracy,accuracy], WEAPON_ELITES);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 45, [accuracy,accuracy], WEAPON_ELITES);
|
||||||
pl.elites_mag--;
|
pl.elites_mag--;
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,7 @@ w_fiveseven_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [accuracy,accuracy], WEAPON_FIVESEVEN);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [accuracy,accuracy], WEAPON_FIVESEVEN);
|
||||||
pl.fiveseven_mag--;
|
pl.fiveseven_mag--;
|
||||||
|
|
||||||
|
|
|
@ -130,6 +130,7 @@ w_g3sg1_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(2);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 80, [accuracy,accuracy], WEAPON_G3SG1);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 80, [accuracy,accuracy], WEAPON_G3SG1);
|
||||||
pl.g3sg1_mag--;
|
pl.g3sg1_mag--;
|
||||||
|
|
||||||
|
|
|
@ -153,6 +153,7 @@ w_glock18_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [accuracy,accuracy], WEAPON_GLOCK18);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [accuracy,accuracy], WEAPON_GLOCK18);
|
||||||
pl.glock18_mag--;
|
pl.glock18_mag--;
|
||||||
|
|
||||||
|
|
|
@ -140,6 +140,7 @@ w_m3_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(9, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_M3);
|
TraceAttack_FireBullets(9, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_M3);
|
||||||
pl.m3_mag--;
|
pl.m3_mag--;
|
||||||
|
|
||||||
|
|
|
@ -164,6 +164,7 @@ w_m4a1_primary(void)
|
||||||
Sound_Play(pl, CHAN_WEAPON, "weapon_m4a1.fire");
|
Sound_Play(pl, CHAN_WEAPON, "weapon_m4a1.fire");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TraceAttack_SetPenetrationPower(1);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_M4A1);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_M4A1);
|
||||||
|
|
||||||
if (self.flags & FL_CROUCHING)
|
if (self.flags & FL_CROUCHING)
|
||||||
|
|
|
@ -131,6 +131,7 @@ w_mac10_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 29, [accuracy,accuracy], WEAPON_MAC10);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 29, [accuracy,accuracy], WEAPON_MAC10);
|
||||||
pl.mac10_mag--;
|
pl.mac10_mag--;
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,7 @@ w_mp5_primary(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_MP5);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_MP5);
|
||||||
|
|
||||||
pl.mp5_mag--;
|
pl.mp5_mag--;
|
||||||
|
|
|
@ -139,6 +139,7 @@ w_p228_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 40, [accuracy,accuracy], WEAPON_P228);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 40, [accuracy,accuracy], WEAPON_P228);
|
||||||
pl.p228_mag--;
|
pl.p228_mag--;
|
||||||
|
|
||||||
|
|
|
@ -132,6 +132,7 @@ w_p90_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_P90);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_P90);
|
||||||
pl.p90_mag--;
|
pl.p90_mag--;
|
||||||
|
|
||||||
|
|
|
@ -131,6 +131,7 @@ w_para_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(1);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 35, [accuracy,accuracy], WEAPON_PARA);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 35, [accuracy,accuracy], WEAPON_PARA);
|
||||||
pl.para_mag--;
|
pl.para_mag--;
|
||||||
|
|
||||||
|
|
|
@ -180,6 +180,7 @@ w_scout_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(2);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 75, [accuracy,accuracy], WEAPON_SCOUT);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 75, [accuracy,accuracy], WEAPON_SCOUT);
|
||||||
pl.scout_mag--;
|
pl.scout_mag--;
|
||||||
|
|
||||||
|
|
|
@ -131,6 +131,7 @@ w_sg550_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(1);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 70, [accuracy,accuracy], WEAPON_SG550);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 70, [accuracy,accuracy], WEAPON_SG550);
|
||||||
pl.sg550_mag--;
|
pl.sg550_mag--;
|
||||||
|
|
||||||
|
|
|
@ -132,6 +132,7 @@ w_sg552_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(1);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_SG552);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_SG552);
|
||||||
pl.sg552_mag--;
|
pl.sg552_mag--;
|
||||||
|
|
||||||
|
|
|
@ -132,6 +132,7 @@ w_tmp_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_TMP);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_TMP);
|
||||||
pl.tmp_mag--;
|
pl.tmp_mag--;
|
||||||
|
|
||||||
|
|
|
@ -132,6 +132,7 @@ w_ump45_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 30, [accuracy,accuracy], WEAPON_UMP45);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 30, [accuracy,accuracy], WEAPON_UMP45);
|
||||||
pl.ump45_mag--;
|
pl.ump45_mag--;
|
||||||
|
|
||||||
|
|
|
@ -169,6 +169,7 @@ w_usp45_primary(void)
|
||||||
Sound_Play(pl, CHAN_WEAPON, "weapon_usp45.fire");
|
Sound_Play(pl, CHAN_WEAPON, "weapon_usp45.fire");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_USP45);
|
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_USP45);
|
||||||
|
|
||||||
if (self.flags & FL_CROUCHING)
|
if (self.flags & FL_CROUCHING)
|
||||||
|
|
|
@ -142,6 +142,7 @@ w_xm1014_primary(void)
|
||||||
pl.a_ammo1--;
|
pl.a_ammo1--;
|
||||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||||
#else
|
#else
|
||||||
|
TraceAttack_SetPenetrationPower(0);
|
||||||
TraceAttack_FireBullets(6, pl.origin + pl.view_ofs, 22, [accuracy,accuracy], WEAPON_XM1014);
|
TraceAttack_FireBullets(6, pl.origin + pl.view_ofs, 22, [accuracy,accuracy], WEAPON_XM1014);
|
||||||
pl.xm1014_mag--;
|
pl.xm1014_mag--;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue