mirror of
https://github.com/s1lentq/ReGameDLL_CS.git
synced 2024-12-27 07:05:38 +03:00
Add base damage for m3 and xm1014. Fix m_flBaseDamageSil (#335)
* Add base damage for m3 and xm1014. Fix m_flBaseDamageSil
This commit is contained in:
parent
9baea02b37
commit
7398bb7d71
@ -1131,6 +1131,91 @@ void CBaseEntity::FireBullets(ULONG cShots, Vector vecSrc, Vector vecDirShooting
|
|||||||
ApplyMultiDamage(pev, pevAttacker);
|
ApplyMultiDamage(pev, pevAttacker);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CBaseEntity::FireBuckshots(ULONG cShots, Vector vecSrc, Vector vecDirShooting, Vector vecSpread, float flDistance, int iTracerFreq, int iDamage, entvars_t *pevAttacker)
|
||||||
|
{
|
||||||
|
static int tracerCount;
|
||||||
|
int tracer;
|
||||||
|
|
||||||
|
TraceResult tr;
|
||||||
|
Vector vecRight, vecUp;
|
||||||
|
|
||||||
|
vecRight = gpGlobals->v_right;
|
||||||
|
vecUp = gpGlobals->v_up;
|
||||||
|
|
||||||
|
if (!pevAttacker)
|
||||||
|
{
|
||||||
|
// the default attacker is ourselves
|
||||||
|
pevAttacker = pev;
|
||||||
|
}
|
||||||
|
|
||||||
|
ClearMultiDamage();
|
||||||
|
gMultiDamage.type = (DMG_BULLET | DMG_NEVERGIB);
|
||||||
|
|
||||||
|
for (ULONG iShot = 1; iShot <= cShots; iShot++)
|
||||||
|
{
|
||||||
|
// get circular gaussian spread
|
||||||
|
float x, y, z;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
x = RANDOM_FLOAT(-0.5, 0.5) + RANDOM_FLOAT(-0.5, 0.5);
|
||||||
|
y = RANDOM_FLOAT(-0.5, 0.5) + RANDOM_FLOAT(-0.5, 0.5);
|
||||||
|
z = x * x + y * y;
|
||||||
|
}
|
||||||
|
while (z > 1);
|
||||||
|
|
||||||
|
Vector vecDir, vecEnd;
|
||||||
|
|
||||||
|
vecDir = vecDirShooting + x * vecSpread.x * vecRight + y * vecSpread.y * vecUp;
|
||||||
|
vecEnd = vecSrc + vecDir * flDistance;
|
||||||
|
|
||||||
|
UTIL_TraceLine(vecSrc, vecEnd, dont_ignore_monsters, ENT(pev), &tr);
|
||||||
|
tracer = 0;
|
||||||
|
|
||||||
|
if (iTracerFreq != 0 && !(tracerCount++ % iTracerFreq))
|
||||||
|
{
|
||||||
|
Vector vecTracerSrc;
|
||||||
|
|
||||||
|
if (IsPlayer())
|
||||||
|
{
|
||||||
|
// adjust tracer position for player
|
||||||
|
vecTracerSrc = vecSrc + Vector(0, 0, -4) + gpGlobals->v_right * 2 + gpGlobals->v_forward * 16;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vecTracerSrc = vecSrc;
|
||||||
|
}
|
||||||
|
|
||||||
|
// guns that always trace also always decal
|
||||||
|
if (iTracerFreq != 1)
|
||||||
|
tracer = 1;
|
||||||
|
|
||||||
|
MESSAGE_BEGIN(MSG_PAS, SVC_TEMPENTITY, vecTracerSrc);
|
||||||
|
WRITE_BYTE(TE_TRACER);
|
||||||
|
WRITE_COORD(vecTracerSrc.x);
|
||||||
|
WRITE_COORD(vecTracerSrc.y);
|
||||||
|
WRITE_COORD(vecTracerSrc.z);
|
||||||
|
WRITE_COORD(tr.vecEndPos.x);
|
||||||
|
WRITE_COORD(tr.vecEndPos.y);
|
||||||
|
WRITE_COORD(tr.vecEndPos.z);
|
||||||
|
MESSAGE_END();
|
||||||
|
}
|
||||||
|
|
||||||
|
// do damage, paint decals
|
||||||
|
if (tr.flFraction != 1.0f)
|
||||||
|
{
|
||||||
|
CBaseEntity *pEntity = CBaseEntity::Instance(tr.pHit);
|
||||||
|
float flDamage = ((1 - tr.flFraction) * iDamage);
|
||||||
|
pEntity->TraceAttack(pevAttacker, int(flDamage), vecDir, &tr, DMG_BULLET);
|
||||||
|
}
|
||||||
|
|
||||||
|
// make bullet trails
|
||||||
|
UTIL_BubbleTrail(vecSrc, tr.vecEndPos, int((flDistance * tr.flFraction) / 64));
|
||||||
|
}
|
||||||
|
|
||||||
|
ApplyMultiDamage(pev, pevAttacker);
|
||||||
|
}
|
||||||
|
|
||||||
bool EXT_FUNC IsPenetrableEntity_default(Vector &vecSrc, Vector &vecEnd, entvars_t *pevAttacker, edict_t *pHit)
|
bool EXT_FUNC IsPenetrableEntity_default(Vector &vecSrc, Vector &vecEnd, entvars_t *pevAttacker, edict_t *pHit)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
@ -146,6 +146,7 @@ public:
|
|||||||
void EXPORT SUB_CallUseToggle() { Use(this, this, USE_TOGGLE, 0); }
|
void EXPORT SUB_CallUseToggle() { Use(this, this, USE_TOGGLE, 0); }
|
||||||
int ShouldToggle(USE_TYPE useType, BOOL currentState);
|
int ShouldToggle(USE_TYPE useType, BOOL currentState);
|
||||||
void FireBullets(ULONG cShots, Vector vecSrc, Vector vecDirShooting, Vector vecSpread, float flDistance, int iBulletType, int iTracerFreq = 4, int iDamage = 0, entvars_t *pevAttacker = nullptr);
|
void FireBullets(ULONG cShots, Vector vecSrc, Vector vecDirShooting, Vector vecSpread, float flDistance, int iBulletType, int iTracerFreq = 4, int iDamage = 0, entvars_t *pevAttacker = nullptr);
|
||||||
|
void FireBuckshots(ULONG cShots, Vector vecSrc, Vector vecDirShooting, Vector vecSpread, float flDistance, int iTracerFreq, int iDamage, entvars_t *pevAttacker = nullptr);
|
||||||
Vector FireBullets3(Vector vecSrc, Vector vecDirShooting, float vecSpread, float flDistance, int iPenetration, int iBulletType, int iDamage, float flRangeModifier, entvars_t *pevAttacker, bool bPistol, int shared_rand = 0);
|
Vector FireBullets3(Vector vecSrc, Vector vecDirShooting, float vecSpread, float flDistance, int iPenetration, int iBulletType, int iDamage, float flRangeModifier, entvars_t *pevAttacker, bool bPistol, int shared_rand = 0);
|
||||||
void SUB_UseTargets(CBaseEntity *pActivator, USE_TYPE useType, float value);
|
void SUB_UseTargets(CBaseEntity *pActivator, USE_TYPE useType, float value);
|
||||||
bool Intersects(CBaseEntity *pOther);
|
bool Intersects(CBaseEntity *pOther);
|
||||||
|
@ -552,15 +552,14 @@ public:
|
|||||||
void USPFire(float flSpread, float flCycleTime, BOOL fUseSemi);
|
void USPFire(float flSpread, float flCycleTime, BOOL fUseSemi);
|
||||||
void MakeBeam();
|
void MakeBeam();
|
||||||
void BeamUpdate();
|
void BeamUpdate();
|
||||||
|
|
||||||
int m_iShell;
|
int m_iShell;
|
||||||
|
|
||||||
|
private:
|
||||||
|
unsigned short m_usFireUSP;
|
||||||
|
|
||||||
#ifdef REGAMEDLL_API
|
#ifdef REGAMEDLL_API
|
||||||
float m_flBaseDamageSil;
|
float m_flBaseDamageSil;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
private:
|
|
||||||
unsigned short m_usFireUSP;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1228,6 +1227,7 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
const float M3_MAX_SPEED = 230.0f;
|
const float M3_MAX_SPEED = 230.0f;
|
||||||
|
const float M3_DAMAGE = 20.0f;
|
||||||
const Vector M3_CONE_VECTOR = Vector(0.0675, 0.0675, 0.0); // special shotgun spreads
|
const Vector M3_CONE_VECTOR = Vector(0.0675, 0.0675, 0.0); // special shotgun spreads
|
||||||
|
|
||||||
enum m3_e
|
enum m3_e
|
||||||
@ -1325,12 +1325,12 @@ public:
|
|||||||
int m_iShell;
|
int m_iShell;
|
||||||
int iShellOn;
|
int iShellOn;
|
||||||
|
|
||||||
|
private:
|
||||||
|
unsigned short m_usFireM4A1;
|
||||||
|
|
||||||
#ifdef REGAMEDLL_API
|
#ifdef REGAMEDLL_API
|
||||||
float m_flBaseDamageSil;
|
float m_flBaseDamageSil;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
private:
|
|
||||||
unsigned short m_usFireM4A1;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1633,6 +1633,7 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
const float XM1014_MAX_SPEED = 240.0f;
|
const float XM1014_MAX_SPEED = 240.0f;
|
||||||
|
const float XM1014_DAMAGE = 20.0f;
|
||||||
const Vector XM1014_CONE_VECTOR = Vector(0.0725, 0.0725, 0.0); // special shotgun spreads
|
const Vector XM1014_CONE_VECTOR = Vector(0.0725, 0.0725, 0.0); // special shotgun spreads
|
||||||
|
|
||||||
enum xm1014_e
|
enum xm1014_e
|
||||||
|
@ -11,6 +11,10 @@ void CM3::Spawn()
|
|||||||
|
|
||||||
m_iDefaultAmmo = M3_DEFAULT_GIVE;
|
m_iDefaultAmmo = M3_DEFAULT_GIVE;
|
||||||
|
|
||||||
|
#ifdef REGAMEDLL_API
|
||||||
|
CSPlayerWeapon()->m_flBaseDamage = M3_DAMAGE;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Get ready to fall down
|
// Get ready to fall down
|
||||||
FallInit();
|
FallInit();
|
||||||
|
|
||||||
@ -100,7 +104,17 @@ void CM3::PrimaryAttack()
|
|||||||
vecSrc = m_pPlayer->GetGunPosition();
|
vecSrc = m_pPlayer->GetGunPosition();
|
||||||
vecAiming = gpGlobals->v_forward;
|
vecAiming = gpGlobals->v_forward;
|
||||||
|
|
||||||
|
#ifdef REGAMEDLL_API
|
||||||
|
float flBaseDamage = CSPlayerWeapon()->m_flBaseDamage;
|
||||||
|
#else
|
||||||
|
float flBaseDamage = M3_DAMAGE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
m_pPlayer->FireBuckshots(9, vecSrc, vecAiming, M3_CONE_VECTOR, 3000, 0, flBaseDamage);
|
||||||
|
#else
|
||||||
m_pPlayer->FireBullets(9, vecSrc, vecAiming, M3_CONE_VECTOR, 3000, BULLET_PLAYER_BUCKSHOT, 0);
|
m_pPlayer->FireBullets(9, vecSrc, vecAiming, M3_CONE_VECTOR, 3000, BULLET_PLAYER_BUCKSHOT, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CLIENT_WEAPONS
|
#ifdef CLIENT_WEAPONS
|
||||||
flag = FEV_NOTHOST;
|
flag = FEV_NOTHOST;
|
||||||
|
@ -11,6 +11,10 @@ void CXM1014::Spawn()
|
|||||||
|
|
||||||
m_iDefaultAmmo = XM1014_DEFAULT_GIVE;
|
m_iDefaultAmmo = XM1014_DEFAULT_GIVE;
|
||||||
|
|
||||||
|
#ifdef REGAMEDLL_API
|
||||||
|
CSPlayerWeapon()->m_flBaseDamage = XM1014_DAMAGE;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Get ready to fall down
|
// Get ready to fall down
|
||||||
FallInit();
|
FallInit();
|
||||||
|
|
||||||
@ -98,7 +102,17 @@ void CXM1014::PrimaryAttack()
|
|||||||
vecSrc = m_pPlayer->GetGunPosition();
|
vecSrc = m_pPlayer->GetGunPosition();
|
||||||
vecAiming = gpGlobals->v_forward;
|
vecAiming = gpGlobals->v_forward;
|
||||||
|
|
||||||
|
#ifdef REGAMEDLL_API
|
||||||
|
float flBaseDamage = CSPlayerWeapon()->m_flBaseDamage;
|
||||||
|
#else
|
||||||
|
float flBaseDamage = XM1014_DAMAGE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
m_pPlayer->FireBuckshots(6, vecSrc, vecAiming, XM1014_CONE_VECTOR, 3048, 0, flBaseDamage);
|
||||||
|
#else
|
||||||
m_pPlayer->FireBullets(6, vecSrc, vecAiming, XM1014_CONE_VECTOR, 3048, BULLET_PLAYER_BUCKSHOT, 0);
|
m_pPlayer->FireBullets(6, vecSrc, vecAiming, XM1014_CONE_VECTOR, 3048, BULLET_PLAYER_BUCKSHOT, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CLIENT_WEAPONS
|
#ifdef CLIENT_WEAPONS
|
||||||
flag = FEV_NOTHOST;
|
flag = FEV_NOTHOST;
|
||||||
|
Loading…
Reference in New Issue
Block a user