Fixed rarity of kills suicide, thrusmoke and for some weapons

This commit is contained in:
s1lentq 2023-12-23 02:43:42 +07:00
parent 28e2bc45f6
commit 0e68bedf24

View File

@ -5250,19 +5250,24 @@ int CHalfLifeMultiplay::GetRarityOfKill(CBaseEntity *pKiller, CBasePlayer *pVict
if (pVictim->m_bHeadshotKilled)
iRarity |= KILLRARITY_HEADSHOT;
// The killer player was blind
CBasePlayer *pKillerPlayer = static_cast<CBasePlayer *>(pKiller);
if (pKillerPlayer && pKillerPlayer->IsPlayer())
{
WeaponClassType weaponClass = AliasToWeaponClass(killerWeaponName);
if (pKillerPlayer != pVictim
&& weaponClass != WEAPONCLASS_NONE
&& weaponClass != WEAPONCLASS_KNIFE
&& weaponClass != WEAPONCLASS_GRENADE)
{
// The killer player kills the victim through the walls
if (pVictim->GetDmgPenetrationLevel() > 0)
iRarity |= KILLRARITY_PENETRATED;
// The killer player was blind
if (pKiller && pKiller->IsPlayer())
{
CBasePlayer *pKillerPlayer = static_cast<CBasePlayer *>(pKiller);
if (pKillerPlayer->IsBlind())
iRarity |= KILLRARITY_KILLER_BLIND;
// The killer player kills the victim with a sniper rifle with no scope
WeaponClassType weaponClass = AliasToWeaponClass(killerWeaponName);
if (weaponClass == WEAPONCLASS_SNIPERRIFLE && pKillerPlayer->m_iClientFOV == DEFAULT_FOV)
iRarity |= KILLRARITY_NOSCOPE;
@ -5270,6 +5275,7 @@ int CHalfLifeMultiplay::GetRarityOfKill(CBaseEntity *pKiller, CBasePlayer *pVict
const Vector inEyePos = pKillerPlayer->EyePosition();
if (TheCSBots()->IsLineBlockedBySmoke(&inEyePos, &pVictim->pev->origin))
iRarity |= KILLRARITY_THRUSMOKE;
}
// Calculate # of unanswered kills between killer & victim
// This is plus 1 as this function gets called before the stat is updated