mirror of
https://github.com/s1lentq/ReGameDLL_CS.git
synced 2025-02-10 22:08:47 +03:00
Minor refactoring CBasePlayer::TakeDamage
Fix cvar ff_damage_reduction_grenade: don't reduce damage to enemies
This commit is contained in:
parent
62cb200a3b
commit
3d21b74897
@ -855,38 +855,36 @@ BOOL EXT_FUNC CBasePlayer::__API_HOOK(TakeDamage)(entvars_t *pevInflictor, entva
|
|||||||
{
|
{
|
||||||
CGrenade *pGrenade = GetClassPtr<CCSGrenade>((CGrenade *)pevInflictor);
|
CGrenade *pGrenade = GetClassPtr<CCSGrenade>((CGrenade *)pevInflictor);
|
||||||
|
|
||||||
if (friendlyfire.value)
|
|
||||||
{
|
|
||||||
if (pGrenade->m_iTeam == m_iTeam)
|
|
||||||
bTeamAttack = TRUE;
|
|
||||||
|
|
||||||
pAttack = CBasePlayer::Instance(pevAttacker);
|
pAttack = CBasePlayer::Instance(pevAttacker);
|
||||||
|
|
||||||
|
if (
|
||||||
|
#ifdef REGAMEDLL_ADD
|
||||||
|
!CSGameRules()->IsFreeForAll() &&
|
||||||
|
#endif
|
||||||
|
pGrenade->m_iTeam == m_iTeam)
|
||||||
|
{
|
||||||
|
if (friendlyfire.value)
|
||||||
|
{
|
||||||
|
bTeamAttack = TRUE;
|
||||||
#ifdef REGAMEDLL_ADD
|
#ifdef REGAMEDLL_ADD
|
||||||
flDamage *= clamp(((pAttack == this) ?
|
flDamage *= clamp(((pAttack == this) ?
|
||||||
ff_damage_reduction_grenade_self.value :
|
ff_damage_reduction_grenade_self.value :
|
||||||
ff_damage_reduction_grenade.value), 0.0f, 1.0f);
|
ff_damage_reduction_grenade.value), 0.0f, 1.0f);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef REGAMEDLL_ADD
|
else if (pAttack == this)
|
||||||
else if (CSGameRules()->IsFreeForAll())
|
|
||||||
{
|
{
|
||||||
pAttack = CBasePlayer::Instance(pevAttacker);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
else if (pGrenade->m_iTeam == m_iTeam)
|
|
||||||
{
|
|
||||||
// if cvar friendlyfire is disabled
|
|
||||||
// and if the victim is teammate then ignore this damage
|
|
||||||
if (&edict()->v != pevAttacker)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef REGAMEDLL_ADD
|
#ifdef REGAMEDLL_ADD
|
||||||
flDamage *= clamp(ff_damage_reduction_grenade_self.value, 0.0f, 1.0f);
|
flDamage *= clamp(ff_damage_reduction_grenade_self.value, 0.0f, 1.0f);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// if cvar friendlyfire is disabled
|
||||||
|
// and if the victim is teammate then ignore this damage
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1026,13 +1024,12 @@ BOOL EXT_FUNC CBasePlayer::__API_HOOK(TakeDamage)(entvars_t *pevInflictor, entva
|
|||||||
{
|
{
|
||||||
pAttack = GetClassPtr<CCSPlayer>((CBasePlayer *)pevAttacker);
|
pAttack = GetClassPtr<CCSPlayer>((CBasePlayer *)pevAttacker);
|
||||||
|
|
||||||
bool bAttackFFA = CSGameRules()->IsFreeForAll();
|
|
||||||
|
|
||||||
// warn about team attacks
|
// warn about team attacks
|
||||||
if (!bAttackFFA && pAttack != this && pAttack->m_iTeam == m_iTeam)
|
if (!CSGameRules()->IsFreeForAll() && pAttack->m_iTeam == m_iTeam)
|
||||||
|
{
|
||||||
|
if (pAttack != this)
|
||||||
{
|
{
|
||||||
#ifndef REGAMEDLL_FIXES
|
#ifndef REGAMEDLL_FIXES
|
||||||
// TODO: this->m_flDisplayHistory!
|
|
||||||
if (!(m_flDisplayHistory & DHF_FRIEND_INJURED))
|
if (!(m_flDisplayHistory & DHF_FRIEND_INJURED))
|
||||||
{
|
{
|
||||||
m_flDisplayHistory |= DHF_FRIEND_INJURED;
|
m_flDisplayHistory |= DHF_FRIEND_INJURED;
|
||||||
@ -1067,8 +1064,6 @@ BOOL EXT_FUNC CBasePlayer::__API_HOOK(TakeDamage)(entvars_t *pevInflictor, entva
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bAttackFFA && pAttack->m_iTeam == m_iTeam)
|
|
||||||
{
|
|
||||||
#ifdef REGAMEDLL_ADD
|
#ifdef REGAMEDLL_ADD
|
||||||
// bullets hurt teammates less
|
// bullets hurt teammates less
|
||||||
flDamage *= clamp(((bitsDamageType & DMG_BULLET) ?
|
flDamage *= clamp(((bitsDamageType & DMG_BULLET) ?
|
||||||
|
Loading…
x
Reference in New Issue
Block a user