antiaim from c++14 branch

This commit is contained in:
nullifiedcat 2017-03-02 22:57:03 +03:00
parent ed3d38fc9b
commit cc620ddf88
9 changed files with 97 additions and 87 deletions

View File

@ -40,8 +40,8 @@ CatVar::CatVar(CatVar_t type, std::string name, std::string defaults, std::strin
g_UnregisteredCatVars.push(this); g_UnregisteredCatVars.push(this);
} }
CatVar::CatVar(CatVar_t type, std::string name, std::string defaults, std::string desc_short, std::string desc_long, CatEnum& cat_enum) CatVar::CatVar(CatEnum& cat_enum, std::string name, std::string defaults, std::string desc_short, std::string desc_long)
: type(type), name(name), defaults(defaults), desc_short(desc_short), desc_long(desc_long), enum_type(&cat_enum), restricted(true) { : type(CV_ENUM), name(name), defaults(defaults), desc_short(desc_short), desc_long(desc_long), enum_type(&cat_enum), restricted(true) {
min = cat_enum.Minimum(); min = cat_enum.Minimum();
max = cat_enum.Maximum(); max = cat_enum.Maximum();
g_UnregisteredCatVars.push(this); g_UnregisteredCatVars.push(this);

View File

@ -54,7 +54,7 @@ public:
CatVar(CatVar_t type, std::string name, std::string defaults, std::string desc_short, std::string desc_long); CatVar(CatVar_t type, std::string name, std::string defaults, std::string desc_short, std::string desc_long);
CatVar(CatVar_t type, std::string name, std::string defaults, std::string desc_short, std::string desc_long, float max_val); CatVar(CatVar_t type, std::string name, std::string defaults, std::string desc_short, std::string desc_long, float max_val);
CatVar(CatVar_t type, std::string name, std::string defaults, std::string desc_short, std::string desc_long, float min_val, float max_val); CatVar(CatVar_t type, std::string name, std::string defaults, std::string desc_short, std::string desc_long, float min_val, float max_val);
CatVar(CatVar_t type, std::string name, std::string defaults, std::string desc_short, std::string desc_long, CatEnum& cat_enum); CatVar(CatEnum& cat_enum, std::string name, std::string defaults, std::string desc_short, std::string desc_long);
inline explicit operator bool() const { return !!convar_parent->m_nValue; } inline explicit operator bool() const { return !!convar_parent->m_nValue; }
inline explicit operator int() const { return convar_parent->m_nValue; } inline explicit operator int() const { return convar_parent->m_nValue; }

View File

@ -22,7 +22,7 @@ CMenuWindow::CMenuWindow(std::string name, IWidget* parent) : CBaseWindow(name,
AddChild(m_pTitle = new CTitleBar(this, "cathook menu")); AddChild(m_pTitle = new CTitleBar(this, "cathook menu"));
} }
#define ADDCVAR(x) tab->AddChild(new CCVarContainer(tab, x)) #define ADDCVAR(x) tab->AddChild(new CCVarContainer(tab, (x)))
#define ADDLABEL(x) tab->AddChild(new CTextLabel("label", tab, x, true)) #define ADDLABEL(x) tab->AddChild(new CTextLabel("label", tab, x, true))
void CMenuWindow::AddElements() { void CMenuWindow::AddElements() {
@ -171,14 +171,15 @@ void CMenuWindow::AddElements() {
ADDCVAR(g_phBunnyhop->v_iAutoJumpSpeed); ADDCVAR(g_phBunnyhop->v_iAutoJumpSpeed);
AddTab("antiaim", "Anti-Aim"); AddTab("antiaim", "Anti-Aim");
tab = GetTab("antiaim"); tab = GetTab("antiaim");
ADDCVAR(g_phAntiAim->v_bEnabled); ADDCVAR(&hacks::shared::antiaim::enabled);
ADDCVAR(g_phAntiAim->v_PitchMode); /*ADDCVAR(&hacks::shared::antiaim::lisp);
ADDCVAR(g_phAntiAim->v_flPitch); ADDCVAR(&hacks::shared::antiaim::yaw_mode;
ADDCVAR(g_phAntiAim->v_YawMode); ADDCVAR(&hacks::shared::antiaim::yaw);
ADDCVAR(g_phAntiAim->v_flYaw); ADDCVAR(&hacks::shared::antiaim::pitch);
ADDCVAR(g_phAntiAim->v_flSpinSpeed); ADDCVAR(&hacks::shared::antiaim::pitch_mode);
ADDCVAR(g_phAntiAim->v_bNoClamping); ADDCVAR(&hacks::shared::antiaim::no_clamping);
ADDCVAR(g_phAntiAim->v_flRoll); ADDCVAR(&hacks::shared::antiaim::roll);
ADDCVAR(&hacks::shared::antiaim::spin);*/
AddTab("spam", "Spam/Killsay"); AddTab("spam", "Spam/Killsay");
tab = GetTab("spam"); tab = GetTab("spam");
ADDLABEL("Spam"); ADDLABEL("Spam");

View File

@ -57,7 +57,6 @@ bool hack::shutdown = false;
void hack::InitHacks() { void hack::InitHacks() {
ADD_HACK(AutoStrafe); ADD_HACK(AutoStrafe);
ADD_HACK(AntiAim);
if (TF) ADD_HACK(AntiDisguise); if (TF) ADD_HACK(AntiDisguise);
if (TF) ADD_HACK(AutoReflect); if (TF) ADD_HACK(AutoReflect);
//ADD_HACK(FollowBot); //ADD_HACK(FollowBot);
@ -198,7 +197,6 @@ void hack::Shutdown() {
if (hooks::hkStudioRender) hooks::hkStudioRender->Kill(); if (hooks::hkStudioRender) hooks::hkStudioRender->Kill();
ConVar_Unregister(); ConVar_Unregister();
DELETE_HACK(AutoStrafe); DELETE_HACK(AutoStrafe);
DELETE_HACK(AntiAim);
if (TF) DELETE_HACK(AntiDisguise); if (TF) DELETE_HACK(AntiDisguise);
if (TF) DELETE_HACK(AutoReflect); if (TF) DELETE_HACK(AutoReflect);
//DELETE_HACK(FollowBot); //DELETE_HACK(FollowBot);

View File

@ -275,7 +275,7 @@ void Aimbot::ProcessUserCmd(CUserCmd* cmd) {
} }
if (charge >= v_fAutoShootHuntsmanCharge->GetFloat()) { if (charge >= v_fAutoShootHuntsmanCharge->GetFloat()) {
cmd->buttons &= ~IN_ATTACK; cmd->buttons &= ~IN_ATTACK;
g_phAntiAim->AddSafeTicks(3); hacks::shared::antiaim::SetSafeSpace(3);
} }
if (!(cmd->buttons & IN_ATTACK) && m_bSilentHuntsman) { if (!(cmd->buttons & IN_ATTACK) && m_bSilentHuntsman) {
Aim(target_highest, cmd); Aim(target_highest, cmd);

View File

@ -10,78 +10,89 @@
#include "../common.h" #include "../common.h"
#include "../sdk.h" #include "../sdk.h"
DEFINE_HACK_SINGLETON(AntiAim); namespace hacks { namespace shared { namespace antiaim {
AntiAim::AntiAim() { CatVar enabled(CV_SWITCH, "aa_enabled", "0", "Anti-Aim", "Master AntiAim switch");
this->v_bEnabled = new CatVar(CV_SWITCH, "aa_enabled", "0", "Enable AntiAim", NULL, "Master AntiAim switch"); CatVar yaw(CV_FLOAT, "aa_yaw", "0.0", "Yaw", "Static yaw (left/right)", 360.0);
this->v_flPitch = new CatVar(CV_FLOAT, "aa_pitch", "-89.0", "Pitch", NULL, "Static pitch (up/down)", true, 89.0, -89.0); CatVar pitch(CV_FLOAT, "aa_pitch", "-89.0", "Pitch", "Static pitch (up/down)", -89.0, 89.0);
this->v_flYaw = new CatVar(CV_FLOAT, "aa_yaw", "0.0", "Yaw", NULL, "Static yaw (left/right)", true, 360.0); CatEnum yaw_mode_enum({ "KEEP", "STATIC", "RANDOM", "SPIN" });
this->v_flSpinSpeed = new CatVar(CV_FLOAT, "aa_spin", "10.0", "Spin speed", NULL, "Spin speed (in deg/sec)"); CatEnum pitch_mode_enum({ "KEEP", "STATIC", "RANDOM" });
this->v_PitchMode = new CatVar(CV_ENUM, "aa_pitch_mode", "1", "Pitch mode", new CatEnum({ "KEEP", "STATIC", "RANDOM" }), "Pitch mode"); CatVar yaw_mode(yaw_mode_enum, "aa_yaw_mode", "3", "Yaw mode", "Yaw mode");
this->v_YawMode = new CatVar(CV_ENUM, "aa_yaw_mode", "3", "Yaw mode", new CatEnum({ "KEEP", "STATIC", "RANDOM", "SPIN" }), "Yaw mode"); CatVar pitch_mode(pitch_mode_enum, "aa_pitch_mode", "1", "Pitch mode", "Pitch mode");
this->v_bNoClamping = new CatVar(CV_SWITCH, "aa_no_clamp", "0", "Don't clamp angles", NULL, "Use this with STATIC mode for unclamped manual angles"); CatVar roll(CV_FLOAT, "aa_roll", "0", "Roll", "Roll angle (viewangles.z)", -180, 180);
this->v_flRoll = new CatVar(CV_FLOAT, "aa_roll", "0", "Roll", NULL, "Roll angle. ???", true, -180, 180); CatVar no_clamping(CV_SWITCH, "aa_no_clamp", "0", "Don't clamp angles", "Use this with STATIC mode for unclamped manual angles");
AddSafeTicks(0); CatVar spin(CV_FLOAT, "aa_spin", "10.0", "Spin speed", "Spin speed (degrees/second)");
CatVar lisp(CV_SWITCH, "aa_lisp", "0", "Lisp angles", "Big numbers");
float cur_yaw = 0.0f;
int safe_space = 0;
void SetSafeSpace(int safespace) {
if (safespace > safe_space) safe_space = safespace;
} }
float yaw = -180; bool ShouldAA(CUserCmd* cmd) {
float pitch = -89; if (!enabled) return false;
if (cmd->buttons & IN_USE) return false;
void AntiAim::AddSafeTicks(int ticks) { if (cmd->buttons & IN_ATTACK) {
m_iSafeTicks = ticks; if (!(TF2 && g_pLocalPlayer->weapon()->m_iClassID == g_pClassID->CTFCompoundBow)) {
if (CanShoot()) return false;
}
}
if ((cmd->buttons & IN_ATTACK2) && g_pLocalPlayer->weapon()->m_iClassID == g_pClassID->CTFLunchBox) return false;
switch (GetWeaponMode(g_pLocalPlayer->entity)) {
case weapon_projectile:
if (g_pLocalPlayer->weapon()->m_iClassID == g_pClassID->CTFCompoundBow) {
if (!(cmd->buttons & IN_ATTACK)) {
if (g_pLocalPlayer->bAttackLastTick) SetSafeSpace(4);
}
break;
}
/* no break */
case weapon_melee:
case weapon_throwable:
if ((cmd->buttons & (IN_ATTACK | IN_ATTACK2)) || g_pLocalPlayer->bAttackLastTick) {
SetSafeSpace(4);
return false;
}
}
if (safe_space) {
safe_space--;
if (safe_space < 0) safe_space = 0;
return false;
}
return true;
} }
void AntiAim::ProcessUserCmd(CUserCmd* cmd) { void ProcessUserCmd(CUserCmd* cmd) {
if (!this->v_bEnabled->GetBool()) return; if (!ShouldAA(cmd)) return;
if (cmd->buttons & IN_USE) { float& p = cmd->viewangles.x;
return; float& y = cmd->viewangles.y;
} switch ((int)yaw_mode) {
if (CE_BAD(LOCAL_W)) return;
if ((cmd->buttons & IN_ATTACK) && (LOCAL_W->m_iClassID != g_pClassID->CTFCompoundBow)) {
if (CanShoot()) return;
}
if ((cmd->buttons & IN_ATTACK2) && g_pLocalPlayer->weapon()->m_iClassID == g_pClassID->CTFLunchBox) return;
weaponmode mode = GetWeaponMode(g_pLocalPlayer->entity);
if (mode == weapon_melee || mode == weapon_throwable || (mode == weapon_projectile && (LOCAL_W->m_iClassID != g_pClassID->CTFCompoundBow))) {
if ((cmd->buttons & IN_ATTACK) || (cmd->buttons & IN_ATTACK2) || g_pLocalPlayer->bAttackLastTick) {
AddSafeTicks(4);
}
}
if ((LOCAL_W->m_iClassID == g_pClassID->CTFCompoundBow) && !(cmd->buttons & IN_ATTACK)) {
if (g_pLocalPlayer->bAttackLastTick) AddSafeTicks(4);
}
float p = cmd->viewangles.x;
float y = cmd->viewangles.y;
switch (this->v_YawMode->GetInt()) {
case 1: // FIXED case 1: // FIXED
y = this->v_flYaw->GetFloat(); y = (float)yaw;
break; break;
case 2: // RANDOM case 2: // RANDOM
y = RandFloatRange(-180.0f, 180.0f); y = RandFloatRange(-180.0f, 180.0f);
break; break;
case 3: // SPIN case 3: // SPIN
yaw += v_flSpinSpeed->GetFloat(); cur_yaw += (float)spin;
if (yaw > 180) yaw = -180; if (cur_yaw > 180) cur_yaw = -180;
y = yaw; y = cur_yaw;
break; break;
} }
switch (this->v_PitchMode->GetInt()) { switch ((int)pitch_mode) {
case 1: case 1:
p = this->v_flPitch->GetFloat(); p = (float)pitch;
break; break;
case 2: case 2:
p = RandFloatRange(-89.0f, 89.0f); p = RandFloatRange(-89.0f, 89.0f);
break; break;
} }
Vector angl = Vector(p, y, 0); if (!no_clamping) fClampAngle(cmd->viewangles);
if (!v_bNoClamping->GetBool()) fClampAngle(angl); if (roll) cmd->viewangles.z = (float)roll;
if (v_flRoll->GetBool()) angl.z = v_flRoll->GetFloat();
if (!m_iSafeTicks) {
cmd->viewangles = angl;
g_pLocalPlayer->bUseSilentAngles = true; g_pLocalPlayer->bUseSilentAngles = true;
} else m_iSafeTicks--;
} }
}}}

View File

@ -8,27 +8,29 @@
#ifndef ANTIAIM_H_ #ifndef ANTIAIM_H_
#define ANTIAIM_H_ #define ANTIAIM_H_
#include "IHack.h" class CatVar;
class CUserCmd;
class AntiAim : public IHack { namespace hacks { namespace shared { namespace antiaim {
public:
AntiAim();
virtual void ProcessUserCmd(CUserCmd*) override; // TODO paste AA from AimTux
void AddSafeTicks(int ticks); extern CatVar enabled;
int m_iSafeTicks; extern CatVar yaw;
extern CatVar pitch;
extern CatVar yaw_mode;
extern CatVar pitch_mode;
extern CatVar roll;
extern CatVar no_clamping;
extern CatVar spin;
extern CatVar lisp;
CatVar* v_bEnabled; extern int safe_space;
CatVar* v_flSpinSpeed;
CatVar* v_flYaw;
CatVar* v_flPitch;
CatVar* v_PitchMode;
CatVar* v_YawMode;
CatVar* v_bNoClamping;
CatVar* v_flRoll;
};
DECLARE_HACK_SINGLETON(AntiAim); void SetSafeSpace(int safespace);
bool ShouldAA(CUserCmd* cmd);
void ProcessUserCmd(CUserCmd* cmd);
}}}
#endif /* ANTIAIM_H_ */ #endif /* ANTIAIM_H_ */

View File

@ -101,7 +101,7 @@ bool CreateMove_hook(void* thisptr, float inputSample, CUserCmd* cmd) {
SAFE_CALL(HACK_PROCESS_USERCMD(AutoStrafe, cmd)); SAFE_CALL(HACK_PROCESS_USERCMD(AutoStrafe, cmd));
SAFE_CALL(HACK_PROCESS_USERCMD(Aimbot, cmd)); SAFE_CALL(HACK_PROCESS_USERCMD(Aimbot, cmd));
SAFE_CALL(HACK_PROCESS_USERCMD(Airstuck, cmd)); SAFE_CALL(HACK_PROCESS_USERCMD(Airstuck, cmd));
SAFE_CALL(HACK_PROCESS_USERCMD(AntiAim, cmd)); SAFE_CALL(hacks::shared::antiaim::ProcessUserCmd(cmd));
if (TF) SAFE_CALL(HACK_PROCESS_USERCMD(AutoSticky, cmd)); if (TF) SAFE_CALL(HACK_PROCESS_USERCMD(AutoSticky, cmd));
if (TF) SAFE_CALL(HACK_PROCESS_USERCMD(AutoReflect, cmd)); if (TF) SAFE_CALL(HACK_PROCESS_USERCMD(AutoReflect, cmd));
SAFE_CALL(HACK_PROCESS_USERCMD(Triggerbot, cmd)); SAFE_CALL(HACK_PROCESS_USERCMD(Triggerbot, cmd));

View File

@ -135,7 +135,6 @@ void LevelInit_hook(void* thisptr, const char* newmap) {
interfaces::engineClient->ExecuteClientCmd("exec cat_matchexec"); interfaces::engineClient->ExecuteClientCmd("exec cat_matchexec");
LEVEL_INIT(Aimbot); LEVEL_INIT(Aimbot);
LEVEL_INIT(Airstuck); LEVEL_INIT(Airstuck);
LEVEL_INIT(AntiAim);
if (TF) LEVEL_INIT(AntiDisguise); if (TF) LEVEL_INIT(AntiDisguise);
if (TF) LEVEL_INIT(AutoHeal); if (TF) LEVEL_INIT(AutoHeal);
if (TF) LEVEL_INIT(AutoReflect); if (TF) LEVEL_INIT(AutoReflect);
@ -158,7 +157,6 @@ void LevelShutdown_hook(void* thisptr) {
g_Settings.bInvalid = true; g_Settings.bInvalid = true;
LEVEL_SHUTDOWN(Aimbot); LEVEL_SHUTDOWN(Aimbot);
LEVEL_SHUTDOWN(Airstuck); LEVEL_SHUTDOWN(Airstuck);
LEVEL_SHUTDOWN(AntiAim);
if (TF) LEVEL_SHUTDOWN(AntiDisguise); if (TF) LEVEL_SHUTDOWN(AntiDisguise);
if (TF) LEVEL_SHUTDOWN(AutoHeal); if (TF) LEVEL_SHUTDOWN(AutoHeal);
if (TF) LEVEL_SHUTDOWN(AutoReflect); if (TF) LEVEL_SHUTDOWN(AutoReflect);