Better Huntsman aimbot

This commit is contained in:
LightCat 2019-03-23 15:22:07 +01:00
parent c775a71a20
commit 2393ab505c

View File

@ -38,7 +38,7 @@ static settings::Float miss_chance{ "aimbot.miss-chance", "0" };
static settings::Bool projectile_aimbot{ "aimbot.projectile.enable", "true" }; static settings::Bool projectile_aimbot{ "aimbot.projectile.enable", "true" };
static settings::Float proj_gravity{ "aimbot.projectile.gravity", "0" }; static settings::Float proj_gravity{ "aimbot.projectile.gravity", "0" };
static settings::Float proj_speed{ "aimbot.projectile.speed", "0" }; static settings::Float proj_speed{ "aimbot.projectile.speed", "0" };
static settings::Float huntsman_autoshoot{ "aimbot.projectile.huntsman-autoshoot", "0.5" };
static settings::Float sticky_autoshoot{ "aimbot.projectile.sticky-autoshoot", "0.5" }; static settings::Float sticky_autoshoot{ "aimbot.projectile.sticky-autoshoot", "0.5" };
static settings::Bool aimbot_debug{ "aimbot.debug", "0" }; static settings::Bool aimbot_debug{ "aimbot.debug", "0" };
@ -220,7 +220,17 @@ static void CreateMove()
// Handle Compound bow // Handle Compound bow
if (g_pLocalPlayer->weapon()->m_iClassID() == CL_CLASS(CTFCompoundBow)) if (g_pLocalPlayer->weapon()->m_iClassID() == CL_CLASS(CTFCompoundBow))
{ {
DoAutoshoot(); bool release = false;
// Grab time when charge began
current_user_cmd->buttons |= IN_ATTACK;
float begincharge = CE_FLOAT(g_pLocalPlayer->weapon(), netvar.flChargeBeginTime);
float charge = g_GlobalVars->curtime - begincharge;
int damage = std::floor(50.0f + 70.0f * fminf(1.0f, charge));
int charge_damage = std::floor(50.0f + 70.0f * fminf(1.0f, charge)) * 3.0f;
if (!wait_for_charge || (damage >= target_entity->m_iHealth() || charge_damage >= target_entity->m_iHealth()))
release = true;
if (release)
DoAutoshoot();
static bool currently_charging_huntsman = false; static bool currently_charging_huntsman = false;
// Hunstman started charging // Hunstman started charging
@ -833,12 +843,8 @@ void DoAutoshoot()
// Handle Compound bow // Handle Compound bow
if (g_pLocalPlayer->weapon()->m_iClassID() == CL_CLASS(CTFCompoundBow)) if (g_pLocalPlayer->weapon()->m_iClassID() == CL_CLASS(CTFCompoundBow))
{ {
// Grab time when charge began
float begincharge = CE_FLOAT(g_pLocalPlayer->weapon(), netvar.flChargeBeginTime);
// Release hunstman if over huntsmans limit // Release hunstman if over huntsmans limit
if ((g_GlobalVars->curtime - begincharge >= (float) huntsman_autoshoot) && begancharge) if (begancharge)
{ {
current_user_cmd->buttons &= ~IN_ATTACK; current_user_cmd->buttons &= ~IN_ATTACK;
hacks::shared::antiaim::SetSafeSpace(5); hacks::shared::antiaim::SetSafeSpace(5);
@ -1046,8 +1052,14 @@ int BestHitbox(CachedEntity *target)
} }
else if (ci == CL_CLASS(CTFCompoundBow)) else if (ci == CL_CLASS(CTFCompoundBow))
{ {
headonly = true; float begincharge = CE_FLOAT(g_pLocalPlayer->weapon(), netvar.flChargeBeginTime);
// Ambassador float charge = g_GlobalVars->curtime - begincharge;
int damage = std::floor(50.0f + 70.0f * fminf(1.0f, charge));
int charge_damage = std::floor(50.0f + 70.0f * fminf(1.0f, charge)) * 3.0f;
if (damage >= target->m_iHealth())
preferred = hitbox_t::spine_3;
else
preferred = hitbox_t::head;
} }
else if (IsAmbassador(g_pLocalPlayer->weapon())) else if (IsAmbassador(g_pLocalPlayer->weapon()))
{ {
@ -1066,13 +1078,11 @@ int BestHitbox(CachedEntity *target)
// Airborn projectile // Airborn projectile
if (GetWeaponMode() == weaponmode::weapon_projectile) if (GetWeaponMode() == weaponmode::weapon_projectile)
{ {
bool ground = CE_INT(target, netvar.iFlags) & (1 << 0); if (g_pLocalPlayer->weapon()->m_iClassID() != CL_CLASS(CTFCompoundBow))
if (!ground)
{ {
if (g_pLocalPlayer->weapon()->m_iClassID() != CL_CLASS(CTFCompoundBow)) bool ground = CE_INT(target, netvar.iFlags) & (1 << 0);
{ if (!ground)
preferred = hitbox_t::spine_3; preferred = hitbox_t::spine_3;
}
} }
} }