Merge pull request #962 from surepy/master

Add more vaccinator autoshoot checks and ESP details
This commit is contained in:
LightCat 2020-04-19 19:06:11 +02:00 committed by GitHub
commit ccdf710b6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 62 additions and 17 deletions

View File

@ -15,14 +15,6 @@ class CachedEntity;
namespace player_tools
{
enum class IgnoreReason
{
DO_NOT_IGNORE,
IS_HOOVY,
IS_TAUNTING,
LOCAL_PLAYER_LIST,
OTHER
};
bool shouldTargetSteamId(unsigned id);
bool shouldTarget(CachedEntity *player);

View File

@ -73,6 +73,7 @@ bool IsPlayerInvulnerable(CachedEntity *player);
bool IsPlayerCritBoosted(CachedEntity *player);
bool IsPlayerInvisible(CachedEntity *player);
bool IsPlayerDisguised(CachedEntity *player);
bool IsPlayerResistantToCurrentWeapon(CachedEntity *player);
const char *GetBuildingName(CachedEntity *ent);
Vector GetBuildingPosition(CachedEntity *ent);

View File

@ -38,6 +38,7 @@ bool shouldTargetSteamId(unsigned id)
return false;
return true;
}
bool shouldTarget(CachedEntity *entity)
{
if (entity->m_Type() == ENTITY_PLAYER)
@ -53,7 +54,6 @@ bool shouldTarget(CachedEntity *entity)
return true;
}
bool shouldAlwaysRenderEspSteamId(unsigned id)
{
if (id == 0)

View File

@ -628,8 +628,7 @@ bool IsTargetStateGood(CachedEntity *entity)
}
}
// Vaccinator
if (g_pLocalPlayer->weapon_mode == weaponmode::weapon_hitscan || LOCAL_W->m_iClassID() == CL_CLASS(CTFCompoundBow))
if (ignore_vaccinator && HasCondition<TFCond_UberBulletResist>(entity))
if (ignore_vaccinator && IsPlayerResistantToCurrentWeapon(entity))
return false;
}

View File

@ -1209,11 +1209,27 @@ void _FASTCALL ProcessEntity(CachedEntity *ent)
// Vaccinator
if (HasCondition<TFCond_UberBulletResist>(ent))
{
AddEntityString(ent, "*VACCINATOR*");
AddEntityString(ent, "*BULLET VACCINATOR*", colors::FromRGBA8(220, 220, 220, 255));
}
else if (HasCondition<TFCond_SmallBulletResist>(ent))
{
AddEntityString(ent, "*PASSIVE RESIST*");
AddEntityString(ent, "*BULLET PASSIVE*");
}
if (HasCondition<TFCond_UberFireResist>(ent))
{
AddEntityString(ent, "*FIRE VACCINATOR*", colors::FromRGBA8(220, 220, 220, 255));
}
else if (HasCondition<TFCond_SmallFireResist>(ent))
{
AddEntityString(ent, "*FIRE PASSIVE*");
}
if (HasCondition<TFCond_UberBlastResist>(ent))
{
AddEntityString(ent, "*BLAST VACCINATOR*", colors::FromRGBA8(220, 220, 220, 255));
}
else if (HasCondition<TFCond_SmallBlastResist>(ent))
{
AddEntityString(ent, "*BLAST PASSIVE*");
}
// Crit
if (IsPlayerCritBoosted(ent))

View File

@ -269,8 +269,7 @@ bool IsTargetStateGood(CachedEntity *entity, bool backtrack)
if (ignore_cloak && IsPlayerInvisible(entity))
return false;
// If settings allow, dont target vaccinated players
if (g_pLocalPlayer->weapon_mode == weaponmode::weapon_hitscan || LOCAL_W->m_iClassID() == CL_CLASS(CTFCompoundBow))
if (ignore_vaccinator && HasCondition<TFCond_UberBulletResist>(entity))
if (ignore_vaccinator && IsPlayerResistantToCurrentWeapon(entity))
return false;
}

View File

@ -1344,6 +1344,44 @@ bool IsPlayerDisguised(CachedEntity *player)
return HasConditionMask<KDisguisedMask.cond_0, KDisguisedMask.cond_1, KDisguisedMask.cond_2, KDisguisedMask.cond_3>(player);
}
bool IsPlayerResistantToCurrentWeapon(CachedEntity *player)
{
switch (LOCAL_W->m_iClassID())
{
case CL_CLASS(CTFRocketLauncher_DirectHit):
case CL_CLASS(CTFRocketLauncher_AirStrike):
case CL_CLASS(CTFRocketLauncher_Mortar): // doesn't exist yet
case CL_CLASS(CTFRocketLauncher):
case CL_CLASS(CTFParticleCannon):
case CL_CLASS(CTFGrenadeLauncher):
case CL_CLASS(CTFPipebombLauncher):
if (HasCondition<TFCond_UberBlastResist>(player))
return true;
break;
case CL_CLASS(CTFCompoundBow):
case CL_CLASS(CTFSyringeGun):
case CL_CLASS(CTFCrossbow):
case CL_CLASS(CTFShotgunBuildingRescue):
case CL_CLASS(CTFDRGPomson):
case CL_CLASS(CTFRaygun):
if (HasCondition<TFCond_UberBulletResist>(player))
return true;
break;
case CL_CLASS(CTFWeaponFlameBall):
case CL_CLASS(CTFFlareGun):
case CL_CLASS(CTFFlareGun_Revenge):
case CL_CLASS(CTFFlameRocket):
case CL_CLASS(CTFFlameThrower):
if (HasCondition<TFCond_UberFireResist>(player))
return true;
break;
default:
if (g_pLocalPlayer->weapon_mode == weaponmode::weapon_hitscan && HasCondition<TFCond_UberBulletResist>(player))
return true;
}
return false;
}
// F1 c&p
Vector CalcAngle(Vector src, Vector dst)
{