Need help whit my code.
So i am very new to coding and i tried making a low fov aimbot for csgo and i have two questions.
1. Anyone that is good at coding want to check my code to see if it is correct
2. In what program do i put the code in to make it fully undetected
Thank you very much!
1. Anyone that is good at coding want to check my code to see if it is correct
2. In what program do i put the code in to make it fully undetected
Thank you very much!
CODE
#include "Aimbot.h"
#include "Timer.h"
bool CAimbot::IsAimKeyPressed(void)
{
static auto bAimKeyPressed = false;
static auto AimTime = Timer();
auto iTime = g_CVars.GetCVar("aim_time")->GetInt();
if (g_CVars.GetCVar("aim_autoshoot")->GetBool())
return true;
if (iTime > 0)
{
if (GetKeyState(1) & 0x8000)
bAimKeyPressed = true;
else bAimKeyPressed = false;
AimTime.SetTime((DWORD)iTime);
if (bAimKeyPressed)
AimTime.Run();
if (AimTime.finished())
bAimKeyPressed = false;
}
else
{
if (GetKeyState(1) & 0x8000)
bAimKeyPressed = true;
else bAimKeyPressed = false;
}
if (iTime > 0 && !bAimKeyPressed && !(GetKeyState(1) & 0x8000))
AimTime.Reset();
return bAimKeyPressed;
}
bool CAimbot::TraceTargetHitpoint(ValveSDK::CBaseEntity * pLocalEntity, ValveSDK::CBaseCombatWeapon* pLocalWeapon, ValveSDK::CBaseEntity* pBaseEntity, ValveSDK::Vector& vecHitPoint)
{
auto flMinDamage = g_CVars.GetCVar("aim_autowall_damage")->GetFloat();
auto vecCurPos = pLocalEntity->GetEyePosition();
ValveSDK::Vector vecHit;
auto bDefaultHitbox = g_pTools->GetHitboxVector(pBaseEntity, GetHitboxIndex(pLocalEntity), vecHit);
if (bDefaultHitbox)
{
auto bIsVisible = g_pTools->IsVisible(vecCurPos, vecHit, pLocalEntity, pBaseEntity);
if (bIsVisible)
{
vecHitPoint = vecHit;
return true;
}
auto flDamage = 0.f;
auto bPenetrate = (g_CVars.GetCVar("aim_autowall")->GetBool()) ? g_pTools->PenetrateWall(pLocalEntity, pLocalWeapon, vecHit, flDamage) : false;
if (bPenetrate && flDamage >= flMinDamage)
{
vecHitPoint = vecHit;
return true;
}
}
auto iHitScan = g_CVars.GetCVar("aim_hitscan")->GetInt();
if (iHitScan > 0)
{
ValveSDK::matrix3x4 BoneMatrixArray[128];
if (!pBaseEntity->SetupBones(BoneMatrixArray, 128, 0x100, 0.f))
return false;
for (int i = 0; i < 44; i++)
{
ValveSDK::Vector vecHitscan;
g_pTools->MatrixToVector(BoneMatrixArray[i], vecHitscan);
if (g_pTools->IsVisible(vecCurPos, vecHitscan, pLocalEntity, pBaseEntity))
{
vecHitPoint = vecHitscan;
return true;
}
if (iHitScan == 2)
{
auto flDamage = 0.f;
auto bPenetrate = g_pTools->PenetrateWall(pLocalEntity, pLocalWeapon, vecHitscan, flDamage);
if (bPenetrate && flDamage >= flMinDamage)
{
vecHitPoint = vecHitscan;
return true;
}
}
}
}
return false;
}
int CAimbot::GetHitboxIndex(ValveSDK::CBaseEntity* pLocalEntity)
{
auto iSmart = g_CVars.GetCVar("aim_smart")->GetInt();
if (iSmart > 0 && pLocalEntity->GetShotsFired() + 1 > iSmart)
return g_CVars.GetCVar("aim_smart_hitbox")->GetInt();
return g_CVars.GetCVar("aim_hitbox")->GetInt();
}
int CAimbot::GetTargetData(ValveSDK::CBaseEntity* pLocalEntity, ValveSDK::CBaseCombatWeapon* pWeapon)
{
auto flMax = 99.f; //9999.f;
auto iBestTargetIndex = -1.f;
auto iAimAt = g_CVars.GetCVar("aim_at")->GetInt();
ValveSDK::QAngle qClientViewAngles;
g_pEngine->GetViewAngles(qClientViewAngles);
ValveSDK::Vector vForward;
g_pTools->AngleVectors(qClientViewAngles, vForward);
for (int i = 1; i < g_pEngine->GetMaxClients(); i++)
{
auto pBaseEntity = g_pEntityList->GetBaseEntity(i);
if (!pBaseEntity)
continue;
if (!pBaseEntity->IsValid(true))
continue;
if (iAimAt == 0 && pLocalEntity->GetTeam() == pBaseEntity->GetTeam())
continue;
else if (iAimAt == 1 && pLocalEntity->GetTeam() != pBaseEntity->GetTeam())
continue;
auto flFoV = g_pTools->GetFoV(pLocalEntity->GetAbsOrigin(), pBaseEntity->GetEyePosition(), vForward);
if (flFoV < flMax)
{
flMax = flFoV;
iBestTargetIndex = i;
}
}
return iBestTargetIndex;
}
CAimbot::CAimbot(void)
{
}
bool CAimbot::Main(ValveSDK::CBaseEntity* pLocalEntity, ValveSDK::CUserCmd* pCmd, bool& bSendPacket)
{
if (!g_CVars.GetCVar("aim_active")->GetBool())
return false;
if (!pLocalEntity || !pCmd)
return false;
if (!IsAimKeyPressed())
return false;
auto pLocalWeapon = pLocalEntity->GetWeapon();
if (!pLocalWeapon)
return false;
if (!pLocalWeapon->IsValid(true))
return false;
auto pLocalWeaponData = pLocalWeapon->GetWeaponData();
if (!pLocalWeaponData)
return false;
auto iIndex = GetTargetData(pLocalEntity, pLocalWeapon);
if (iIndex == -1)
return false;
auto pBaseEntity = g_pEntityList->GetBaseEntity(iIndex);
if (!pBaseEntity)
return false;
ValveSDK::Vector vecAimFinal;
if (!TraceTargetHitpoint(pLocalEntity, pLocalWeapon, pBaseEntity, vecAimFinal))
return false;
if (g_pTools->GetDistance(vecAimFinal, pLocalEntity->GetEyePosition()) > pLocalWeaponData->m_flRange)
return false;
ValveSDK::QAngle qClientViewAngles;
g_pEngine->GetViewAngles(qClientViewAngles);
ValveSDK::Vector vForward;
g_pTools->AngleVectors(qClientViewAngles, vForward);
if (g_pTools->GetFoV(pLocalEntity->GetAbsOrigin(), vecAimFinal, vForward) > g_CVars.GetCVar("aim_fov")->GetFloat())
return false;
ValveSDK::QAngle qAimAngles;
g_pTools->CalcAngle(pLocalEntity->GetEyePosition(), vecAimFinal, qAimAngles);
auto iSilentAim = g_CVars.GetCVar("aim_silent")->GetInt();
auto flSmooth = g_CVars.GetCVar("aim_smooth")->GetFloat();
flSmooth / 10.f;
if (g_CVars.GetCVar("aim_rcs")->GetBool() && pLocalWeapon->IsAutomatic())
{
auto qPunchAngles = pLocalEntity->GetAimPunch();
qAimAngles -= qPunchAngles * 2.f;
qAimAngles.z = 0.f;
g_pTools->NormalizeVector(qAimAngles);
}
if (flSmooth > 0.f && !iSilentAim)
{
g_pTools->NormalizeVector(qClientViewAngles);
auto qDelta = qClientViewAngles - qAimAngles;
g_pTools->NormalizeVector(qDelta);
auto qSmooth = qClientViewAngles - qDelta / flSmooth;
g_pTools->NormalizeVector(qDelta);
qAimAngles = qSmooth;
}
g_pTools->NormalizeVector(qAimAngles);
g_pTools->ClampAngles(qAimAngles);
if (iSilentAim == 2)
bSendPacket = false;
pCmd->viewangles = qAimAngles;
if (!iSilentAim)
g_pEngine->SetViewAngles(qAimAngles);
if (g_CVars.GetCVar("aim_autoshoot")->GetBool())
pCmd->buttons |= IN_ATTACK;
/*
pCmd->forwardmove = 0.f;
pCmd->sidemove = 0.f;
pCmd->buttons |= IN_DUCK;
*/
if (iSilentAim)
g_pEngine->SetViewAngles(qClientViewAngles);
if (iSilentAim == 2)
bSendPacket = true;
return true;
}
CAimbot* g_pAimbot = nullptr;
#include "Timer.h"
bool CAimbot::IsAimKeyPressed(void)
{
static auto bAimKeyPressed = false;
static auto AimTime = Timer();
auto iTime = g_CVars.GetCVar("aim_time")->GetInt();
if (g_CVars.GetCVar("aim_autoshoot")->GetBool())
return true;
if (iTime > 0)
{
if (GetKeyState(1) & 0x8000)
bAimKeyPressed = true;
else bAimKeyPressed = false;
AimTime.SetTime((DWORD)iTime);
if (bAimKeyPressed)
AimTime.Run();
if (AimTime.finished())
bAimKeyPressed = false;
}
else
{
if (GetKeyState(1) & 0x8000)
bAimKeyPressed = true;
else bAimKeyPressed = false;
}
if (iTime > 0 && !bAimKeyPressed && !(GetKeyState(1) & 0x8000))
AimTime.Reset();
return bAimKeyPressed;
}
bool CAimbot::TraceTargetHitpoint(ValveSDK::CBaseEntity * pLocalEntity, ValveSDK::CBaseCombatWeapon* pLocalWeapon, ValveSDK::CBaseEntity* pBaseEntity, ValveSDK::Vector& vecHitPoint)
{
auto flMinDamage = g_CVars.GetCVar("aim_autowall_damage")->GetFloat();
auto vecCurPos = pLocalEntity->GetEyePosition();
ValveSDK::Vector vecHit;
auto bDefaultHitbox = g_pTools->GetHitboxVector(pBaseEntity, GetHitboxIndex(pLocalEntity), vecHit);
if (bDefaultHitbox)
{
auto bIsVisible = g_pTools->IsVisible(vecCurPos, vecHit, pLocalEntity, pBaseEntity);
if (bIsVisible)
{
vecHitPoint = vecHit;
return true;
}
auto flDamage = 0.f;
auto bPenetrate = (g_CVars.GetCVar("aim_autowall")->GetBool()) ? g_pTools->PenetrateWall(pLocalEntity, pLocalWeapon, vecHit, flDamage) : false;
if (bPenetrate && flDamage >= flMinDamage)
{
vecHitPoint = vecHit;
return true;
}
}
auto iHitScan = g_CVars.GetCVar("aim_hitscan")->GetInt();
if (iHitScan > 0)
{
ValveSDK::matrix3x4 BoneMatrixArray[128];
if (!pBaseEntity->SetupBones(BoneMatrixArray, 128, 0x100, 0.f))
return false;
for (int i = 0; i < 44; i++)
{
ValveSDK::Vector vecHitscan;
g_pTools->MatrixToVector(BoneMatrixArray[i], vecHitscan);
if (g_pTools->IsVisible(vecCurPos, vecHitscan, pLocalEntity, pBaseEntity))
{
vecHitPoint = vecHitscan;
return true;
}
if (iHitScan == 2)
{
auto flDamage = 0.f;
auto bPenetrate = g_pTools->PenetrateWall(pLocalEntity, pLocalWeapon, vecHitscan, flDamage);
if (bPenetrate && flDamage >= flMinDamage)
{
vecHitPoint = vecHitscan;
return true;
}
}
}
}
return false;
}
int CAimbot::GetHitboxIndex(ValveSDK::CBaseEntity* pLocalEntity)
{
auto iSmart = g_CVars.GetCVar("aim_smart")->GetInt();
if (iSmart > 0 && pLocalEntity->GetShotsFired() + 1 > iSmart)
return g_CVars.GetCVar("aim_smart_hitbox")->GetInt();
return g_CVars.GetCVar("aim_hitbox")->GetInt();
}
int CAimbot::GetTargetData(ValveSDK::CBaseEntity* pLocalEntity, ValveSDK::CBaseCombatWeapon* pWeapon)
{
auto flMax = 99.f; //9999.f;
auto iBestTargetIndex = -1.f;
auto iAimAt = g_CVars.GetCVar("aim_at")->GetInt();
ValveSDK::QAngle qClientViewAngles;
g_pEngine->GetViewAngles(qClientViewAngles);
ValveSDK::Vector vForward;
g_pTools->AngleVectors(qClientViewAngles, vForward);
for (int i = 1; i < g_pEngine->GetMaxClients(); i++)
{
auto pBaseEntity = g_pEntityList->GetBaseEntity(i);
if (!pBaseEntity)
continue;
if (!pBaseEntity->IsValid(true))
continue;
if (iAimAt == 0 && pLocalEntity->GetTeam() == pBaseEntity->GetTeam())
continue;
else if (iAimAt == 1 && pLocalEntity->GetTeam() != pBaseEntity->GetTeam())
continue;
auto flFoV = g_pTools->GetFoV(pLocalEntity->GetAbsOrigin(), pBaseEntity->GetEyePosition(), vForward);
if (flFoV < flMax)
{
flMax = flFoV;
iBestTargetIndex = i;
}
}
return iBestTargetIndex;
}
CAimbot::CAimbot(void)
{
}
bool CAimbot::Main(ValveSDK::CBaseEntity* pLocalEntity, ValveSDK::CUserCmd* pCmd, bool& bSendPacket)
{
if (!g_CVars.GetCVar("aim_active")->GetBool())
return false;
if (!pLocalEntity || !pCmd)
return false;
if (!IsAimKeyPressed())
return false;
auto pLocalWeapon = pLocalEntity->GetWeapon();
if (!pLocalWeapon)
return false;
if (!pLocalWeapon->IsValid(true))
return false;
auto pLocalWeaponData = pLocalWeapon->GetWeaponData();
if (!pLocalWeaponData)
return false;
auto iIndex = GetTargetData(pLocalEntity, pLocalWeapon);
if (iIndex == -1)
return false;
auto pBaseEntity = g_pEntityList->GetBaseEntity(iIndex);
if (!pBaseEntity)
return false;
ValveSDK::Vector vecAimFinal;
if (!TraceTargetHitpoint(pLocalEntity, pLocalWeapon, pBaseEntity, vecAimFinal))
return false;
if (g_pTools->GetDistance(vecAimFinal, pLocalEntity->GetEyePosition()) > pLocalWeaponData->m_flRange)
return false;
ValveSDK::QAngle qClientViewAngles;
g_pEngine->GetViewAngles(qClientViewAngles);
ValveSDK::Vector vForward;
g_pTools->AngleVectors(qClientViewAngles, vForward);
if (g_pTools->GetFoV(pLocalEntity->GetAbsOrigin(), vecAimFinal, vForward) > g_CVars.GetCVar("aim_fov")->GetFloat())
return false;
ValveSDK::QAngle qAimAngles;
g_pTools->CalcAngle(pLocalEntity->GetEyePosition(), vecAimFinal, qAimAngles);
auto iSilentAim = g_CVars.GetCVar("aim_silent")->GetInt();
auto flSmooth = g_CVars.GetCVar("aim_smooth")->GetFloat();
flSmooth / 10.f;
if (g_CVars.GetCVar("aim_rcs")->GetBool() && pLocalWeapon->IsAutomatic())
{
auto qPunchAngles = pLocalEntity->GetAimPunch();
qAimAngles -= qPunchAngles * 2.f;
qAimAngles.z = 0.f;
g_pTools->NormalizeVector(qAimAngles);
}
if (flSmooth > 0.f && !iSilentAim)
{
g_pTools->NormalizeVector(qClientViewAngles);
auto qDelta = qClientViewAngles - qAimAngles;
g_pTools->NormalizeVector(qDelta);
auto qSmooth = qClientViewAngles - qDelta / flSmooth;
g_pTools->NormalizeVector(qDelta);
qAimAngles = qSmooth;
}
g_pTools->NormalizeVector(qAimAngles);
g_pTools->ClampAngles(qAimAngles);
if (iSilentAim == 2)
bSendPacket = false;
pCmd->viewangles = qAimAngles;
if (!iSilentAim)
g_pEngine->SetViewAngles(qAimAngles);
if (g_CVars.GetCVar("aim_autoshoot")->GetBool())
pCmd->buttons |= IN_ATTACK;
/*
pCmd->forwardmove = 0.f;
pCmd->sidemove = 0.f;
pCmd->buttons |= IN_DUCK;
*/
if (iSilentAim)
g_pEngine->SetViewAngles(qClientViewAngles);
if (iSilentAim == 2)
bSendPacket = true;
return true;
}
CAimbot* g_pAimbot = nullptr;