fix for latest game update

update auto airblast flags for future use
some misc fixes/changes
This commit is contained in:
rei-2 committed 2025-02-18 22:20:23 -05:00
1 parent cc99a5aef6
commit 9762bdd6e2
21 files changed
+119 -118

No files matched your search

+2 -1
View File
@@ -64,9 +64,10 @@ void CAimbot::RunMain(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd)
}
bRan = false;
G::AimPosition = Vec3();
if (abs(G::Target.second - I::GlobalVars->tickcount) > 32)
G::Target = { 0, 0 };
if (abs(G::AimPosition.second - I::GlobalVars->tickcount) > 32)
G::AimPosition = { {}, 0 };
if (pCmd->weaponselect)
return;
@@ -741,8 +741,7 @@ void CAimbotHitscan::Run(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pC
}
G::Target = { target.m_pEntity->entindex(), I::GlobalVars->tickcount };
if (Vars::Aimbot::General::AimType.Value == Vars::Aimbot::General::AimTypeEnum::Silent)
G::AimPosition = target.m_vPos;
G::AimPosition = { target.m_vPos, I::GlobalVars->tickcount };
bool bShouldFire = ShouldFire(pLocal, pWeapon, pCmd, target);
@@ -482,9 +482,7 @@ void CAimbotMelee::Run(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd
}
G::Target = { target.m_pEntity->entindex(), I::GlobalVars->tickcount };
if (Vars::Aimbot::General::AimType.Value == Vars::Aimbot::General::AimTypeEnum::Silent)
G::AimPosition = target.m_vPos;
G::AimPosition = { target.m_vPos, I::GlobalVars->tickcount };
if (Vars::Aimbot::General::AutoShoot.Value && pWeapon->m_flSmackTime() < 0.f)
{
@@ -1320,8 +1320,7 @@ bool CAimbotProjectile::RunMain(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUser
}
G::Target = { target.m_pEntity->entindex(), I::GlobalVars->tickcount };
if (Vars::Aimbot::General::AimType.Value == Vars::Aimbot::General::AimTypeEnum::Silent)
G::AimPosition = target.m_vPos;
G::AimPosition = { target.m_vPos, I::GlobalVars->tickcount };
if (Vars::Aimbot::General::AutoShoot.Value)
{
@@ -1,5 +1,48 @@
#include "AutoAirblast.h"
#include "../../Backtrack/Backtrack.h"
static inline bool ShouldTargetProjectile(CBaseEntity* pProjectile, CTFPlayer* pLocal)
{
if (pProjectile->m_iTeamNum() == pLocal->m_iTeamNum())
return false;
switch (pProjectile->GetClassID())
{
case ETFClassID::CTFGrenadePipebombProjectile:
case ETFClassID::CTFProjectile_Cleaver:
case ETFClassID::CTFStunBall:
{
if (pProjectile->As<CTFGrenadePipebombProjectile>()->m_bTouched())
return false; // ignore landed vphysics objects
break;
}
case ETFClassID::CTFProjectile_Arrow:
{
if (pProjectile->GetAbsVelocity().IsZero())
return false; // ignore arrows with no velocity / not moving
}
}
return true;
}
static inline Vec3 PredictOrigin(Vec3& vOrigin, Vec3 vVelocity, float flLatency, bool bTrace = true, Vec3 vMins = {}, Vec3 vMaxs = {}, unsigned int nMask = MASK_SOLID)
{
if (vVelocity.IsZero() || !flLatency)
return vOrigin;
Vec3 vTo = vOrigin + vVelocity * flLatency;
if (!bTrace)
return vTo;
CGameTrace trace = {};
CTraceFilterWorldAndPropsOnly filter = {};
SDK::TraceHull(vOrigin, vTo, vMins, vMaxs, nMask, &filter, &trace);
return vOrigin + (vTo - vOrigin) * trace.fraction;
}
bool CAutoAirblast::CanAirblastEntity(CTFPlayer* pLocal, CBaseEntity* pEntity, Vec3& vAngle, Vec3& vPos)
{
Vec3 vForward; Math::AngleVectors(vAngle, &vForward);
@@ -19,7 +62,7 @@ bool CAutoAirblast::CanAirblastEntity(CTFPlayer* pLocal, CBaseEntity* pEntity, V
void CAutoAirblast::Run(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd)
{
if (!Vars::Aimbot::Projectile::AutoAirblast.Value || !G::CanSecondaryAttack /*|| Vars::Auto::Airblast::DisableOnAttack.Value && pCmd->buttons & IN_ATTACK*/)
if (!(Vars::Aimbot::Projectile::AutoAirblast.Value & Vars::Aimbot::Projectile::AutoAirblastEnum::Enabled) || !G::CanSecondaryAttack /*|| Vars::Auto::Airblast::DisableOnAttack.Value && pCmd->buttons & IN_ATTACK*/)
return;
const int iWeaponID = pWeapon->GetWeaponID();
@@ -29,84 +72,47 @@ void CAutoAirblast::Run(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCm
const Vec3 vEyePos = pLocal->GetShootPos();
bool bShouldBlast = false;
float flLatency = std::max(F::Backtrack.GetReal() - 0.05f, 0.f);
for (auto pProjectile : H::Entities.GetGroup(EGroupType::WORLD_PROJECTILES))
{
if (pProjectile->m_iTeamNum() == pLocal->m_iTeamNum())
if (!ShouldTargetProjectile(pProjectile, pLocal))
continue;
switch (pProjectile->GetClassID())
{
case ETFClassID::CTFGrenadePipebombProjectile:
case ETFClassID::CTFProjectile_Cleaver:
case ETFClassID::CTFStunBall:
{
if (pProjectile->As<CTFGrenadePipebombProjectile>()->m_bTouched())
continue; // ignore landed vphysics objects
break;
}
case ETFClassID::CTFProjectile_Arrow:
{
if (pProjectile->GetAbsVelocity().IsZero())
continue; // ignore arrows with no velocity / not moving
}
}
Vec3 vRestoreOrigin = pProjectile->GetAbsOrigin();
Vec3 vOrigin = PredictOrigin(pProjectile->m_vecOrigin(), pProjectile->GetAbsVelocity(), flLatency);
pProjectile->SetAbsOrigin(vOrigin);
Vec3 vPos = pProjectile->m_vecOrigin();
if (Math::GetFov(I::EngineClient->GetViewAngles(), vEyePos, vPos) > Vars::Aimbot::General::AimFOV.Value)
if (Vars::Aimbot::Projectile::AutoAirblast.Value & Vars::Aimbot::Projectile::AutoAirblastEnum::RespectFOV
&& Math::GetFov(I::EngineClient->GetViewAngles(), vEyePos, vOrigin) > Vars::Aimbot::General::AimFOV.Value)
continue;
if (CanAirblastEntity(pLocal, pProjectile, pCmd->viewangles, vPos))
/*
if (Vars::Aimbot::Projectile::AutoAirblast.Value & Vars::Aimbot::Projectile::AutoAirblastEnum::RedirectAdvanced)
{
bShouldBlast = true;
break;
}
if (!bShouldBlast && Vars::Aimbot::Projectile::AutoAirblast.Value == Vars::Aimbot::Projectile::AutoAirblastEnum::Rage) // possibly implement proj aimbot somehow ?
else*/ if (Vars::Aimbot::Projectile::AutoAirblast.Value & Vars::Aimbot::Projectile::AutoAirblastEnum::RedirectSimple
|| Vars::Aimbot::Projectile::AutoAirblast.Value & Vars::Aimbot::Projectile::AutoAirblastEnum::RedirectAdvanced)
{
Vec3 vAngle = Math::CalcAngle(vEyePos, vPos);
if (CanAirblastEntity(pLocal, pProjectile, vAngle, vPos))
Vec3 vAngle = Math::CalcAngle(vEyePos, vOrigin);
if (CanAirblastEntity(pLocal, pProjectile, vAngle, vOrigin))
{
SDK::FixMovement(pCmd, vAngle);
pCmd->viewangles = vAngle;
G::PSilentAngles = true;
bShouldBlast = true;
break;
}
}
else if (CanAirblastEntity(pLocal, pProjectile, pCmd->viewangles, vOrigin))
bShouldBlast = true;
pProjectile->SetAbsOrigin(vRestoreOrigin);
if (bShouldBlast)
break;
}
/*
if (!bShouldBlast && Vars::Auto::Airblast::ExtinguishPlayers.Value)
{
for (auto pPlayer : H::Entities.GetGroup(EGroupType::PLAYERS_TEAMMATES))
{
if (pPlayer->IsDormant() || !pPlayer->IsAlive() || pPlayer->IsAGhost() || !pPlayer->InCond(TF_COND_BURNING))
continue;
Vec3 vPos = pPlayer->m_vecOrigin() + pPlayer->GetViewOffset(); // this seems to like to overpredict ?
if (Math::GetFov(I::EngineClient->GetViewAngles(), vEyePos, vPos) > Vars::Aimbot::General::AimFOV.Value)
continue;
if (CanAirblastEntity(pLocal, pPlayer, pCmd->viewangles, vPos))
{
bShouldBlast = true;
break;
}
if (!bShouldBlast && Vars::Aimbot::Projectile::AutoAirblast.Value == Vars::Aimbot::Projectile::AutoAirblastEnum::Rage)
{
Vec3 vAngle = Math::CalcAngle(vEyePos, pPlayer->GetCenter());
if (CanAirblastEntity(pLocal, pPlayer, vAngle, vPos))
{
SDK::FixMovement(pCmd, vAngle);
pCmd->viewangles = vAngle;
G::PSilentAngles = true;
bShouldBlast = true;
break;
}
}
}
}
*/
if (bShouldBlast)
{
G::Attacking = true;
+4 -4
View File
@@ -204,7 +204,7 @@ void CMenu::MenuAimbot()
FDropdown("Predict", Vars::Aimbot::Projectile::StrafePrediction, { "Air strafing", "Ground strafing" }, {}, FDropdown_Multi | FDropdown_Left);
FDropdown("Splash", Vars::Aimbot::Projectile::SplashPrediction, { "Off", "Include", "Prefer", "Only" }, {}, FDropdown_Right);
FDropdown("Auto detonate", Vars::Aimbot::Projectile::AutoDetonate, { "Stickies", "Flares", "##Divider", "Ignore self damage" }, {}, FDropdown_Multi | FDropdown_Left);
FDropdown("Auto airblast", Vars::Aimbot::Projectile::AutoAirblast, { "Off", "Legit", "Rage" }, {}, FDropdown_Right);
FDropdown("Auto airblast", Vars::Aimbot::Projectile::AutoAirblast, { "Enabled", "##Divider", "Redirect simple", "Redirect advanced", "##Divider", "Respect FOV"}, {}, FDropdown_Multi | FDropdown_Right); // todo: finish redirect advanced!!
FDropdown("Modifiers## Projectile", Vars::Aimbot::Projectile::Modifiers, { "Charge shot", "Cancel charge", "Bodyaim if lethal", "Use prime time", "Aim blast at feet" }, {}, FDropdown_Multi);
FSlider("Max simulation time", Vars::Aimbot::Projectile::PredictionTime, 0.1f, 10.f, 0.25f, "%gs", FSlider_Min | FSlider_Precision);
PushTransparent(!FGet(Vars::Aimbot::Projectile::StrafePrediction));
@@ -377,9 +377,9 @@ void CMenu::MenuAimbot()
PopTransparent();
FSlider("Cycle yaw", Vars::AntiHack::Resolver::CycleYaw, -180.f, 180.f, 45.f, "%g", FSlider_Left | FSlider_Clamp | FSlider_Precision);
FSlider("Cycle pitch", Vars::AntiHack::Resolver::CyclePitch, -180.f, 180.f, 90.f, "%g", FSlider_Right | FSlider_Clamp);
FToggle("Cycle view", Vars::AntiHack::Resolver::CycleView, FToggle_Right);
FToggle("Cycle minwalk", Vars::AntiHack::Resolver::CycleMinwalk, FToggle_Left);
PopTransparent();
FToggle("Cycle view", Vars::AntiHack::Resolver::CycleView, FToggle_Left);
FToggle("Cycle minwalk", Vars::AntiHack::Resolver::CycleMinwalk, FToggle_Right);
PopTransparent();
} EndSection();
if (Section("Auto Peek"))
{
@@ -30,15 +30,9 @@ MAKE_HOOK(CBasePlayer_CalcViewModelView, S::CBasePlayer_CalcViewModelView(), voi
static Vec3 vAng = {};
static int iTick = 0;
if (!G::AimPosition.IsZero())
if (!G::AimPosition.first.IsZero())
{
vAng = Math::CalcAngle(vEyePosition, G::AimPosition);
iTick = I::GlobalVars->tickcount;
}
if (abs(iTick - I::GlobalVars->tickcount) < 32)
{
Vec3 vDiff = I::EngineClient->GetViewAngles() - vAng;
Vec3 vDiff = I::EngineClient->GetViewAngles() - Math::CalcAngle(vEyePosition, G::AimPosition.first);
if (bFlip)
vDiff.y *= -1;
vEyeAngles = I::EngineClient->GetViewAngles() - vDiff;
@@ -20,16 +20,10 @@ MAKE_HOOK(CHudCrosshair_GetDrawPosition, S::CHudCrosshair_GetDrawPosition(), voi
static Vec3 vPos = {};
static int iTick = 0;
if (!G::AimPosition.IsZero())
{
vPos = G::AimPosition;
iTick = I::GlobalVars->tickcount;
}
if (abs(iTick - I::GlobalVars->tickcount) < 32)
if (!G::AimPosition.first.IsZero())
{
Vec3 vScreen;
if (SDK::W2S(vPos, vScreen))
if (SDK::W2S(G::AimPosition.first, vScreen))
{
if (pX) *pX = vScreen.x;
if (pY) *pY = vScreen.y;
@@ -1,6 +1,6 @@
#include "../SDK/SDK.h"
MAKE_SIGNATURE(CRendering3dView_EnableWorldFog, "client.dll", "40 53 48 83 EC ? 48 8B 0D ? ? ? ? 48 89 7C 24", 0x0);
MAKE_SIGNATURE(CRendering3dView_EnableWorldFog, "client.dll", "40 53 48 83 EC ? 48 8B 0D ? ? ? ? 48 89 74 24", 0x0);
MAKE_HOOK(CRendering3dView_EnableWorldFog, S::CRendering3dView_EnableWorldFog(), void,
)
@@ -1,7 +1,7 @@
#include "Interface.h"
#include "../Steam/SteamClientPublic.h"
MAKE_SIGNATURE(CTFGCClientSystem_PingThink, "client.dll", "40 55 41 55 41 56 41 57 48 8D AC 24", 0x0);
MAKE_SIGNATURE(CTFGCClientSystem_PingThink, "client.dll", "48 89 4C 24 ? 55 41 54 41 55 48 8D AC 24 ? ? ? ? 48 81 EC", 0x0);
MAKE_SIGNATURE(CTFGCClientSystem_UpdateAssignedLobby, "client.dll", "40 55 53 41 54 41 56 41 57 48 8B EC", 0x0);
MAKE_SIGNATURE(CTFGCClientSystem_GetParty, "client.dll", "48 83 EC ? 48 8B 89 ? ? ? ? 48 85 C9 74 ? BA ? ? ? ? E8 ? ? ? ? 48 85 C0 74 ? 8B 48 ? 85 C9 74 ? 48 8B 40 ? FF C9", 0x0);
@@ -324,6 +324,15 @@ enum RenderTargetSizeMode_t
RT_SIZE_LITERAL_PICMIP = 9
};
enum RenderBackend_t
{
RENDER_BACKEND_UNKNOWN,
RENDER_BACKEND_D3D9,
RENDER_BACKEND_TOGL,
RENDER_BACKEND_VULKAN,
RENDER_BACKEND_NULL,
};
typedef void (*MaterialBufferReleaseFunc_t)();
typedef void (*MaterialBufferRestoreFunc_t)(int nChangeFlags);
typedef void (*ModeChangeCallbackFunc_t)(void);
@@ -409,8 +418,6 @@ public:
virtual void ToggleDebugMaterial(char const* pMaterialName) = 0;
virtual bool UsingFastClipping(void) = 0;
virtual int StencilBufferBits(void) = 0;
virtual void SuspendTextureStreaming() = 0;
virtual void ResumeTextureStreaming() = 0;
virtual void UncacheAllMaterials() = 0;
virtual void UncacheUnusedMaterials(bool bRecomputeStateSnapshots = false) = 0;
virtual void CacheUsedMaterials() = 0;
@@ -478,9 +485,12 @@ public:
virtual ITexture* CreateNamedTextureFromBitsEx(const char* pName, const char* pTextureGroupName, int w, int h, int mips, ImageFormat fmt, int srcBufferSize, byte* srcBits, int nFlags) = 0;
virtual bool AddTextureCompositorTemplate(const char* pName, KeyValues* pTmplDesc, int nTexCompositeTemplateFlags = 0) = 0;
virtual bool VerifyTextureCompositorTemplates() = 0;
virtual RenderBackend_t GetRenderBackend() const = 0;
virtual void SuspendTextureStreaming() = 0;
virtual void ResumeTextureStreaming() = 0;
};
MAKE_INTERFACE_VERSION(IMaterialSystem, MaterialSystem, "materialsystem.dll", "VMaterialSystem081");
MAKE_INTERFACE_VERSION(IMaterialSystem, MaterialSystem, "materialsystem.dll", "VMaterialSystem082");
class IMatRenderContext : public IRefCounted
{
@@ -10,4 +10,4 @@ public:
virtual float RandomFloatExp(float flMinVal = 0.f, float flMaxVal = 1.f, float flExponent = 1.f) = 0;
};
MAKE_INTERFACE_SIGNATURE(IUniformRandomStream, UniformRandomStream, "client.dll", "48 8B 0D ? ? ? ? 33 D2 F3 0F 59 CE", 0x0, 1);
MAKE_INTERFACE_SIGNATURE(IUniformRandomStream, UniformRandomStream, "client.dll", "48 8B 0D ? ? ? ? F3 0F 59 CA 44 8D 42", 0x0, 1);
@@ -24,7 +24,7 @@ public:
NETVAR_OFF(m_bInReload, bool, "CBaseCombatWeapon", "m_flNextPrimaryAttack", 12);
VIRTUAL(GetName, const char*, void*, this, 332);
VIRTUAL(GetName, const char*, void*, this, 333);
inline bool HasAmmo()
{
@@ -83,14 +83,14 @@ public:
CONDGET(IsInWater, m_fFlags(), FL_INWATER);
CONDGET(IsDucking, m_fFlags(), FL_DUCKING);
VIRTUAL(PreThink, void, void*, this, 261);
VIRTUAL(Think, void, void*, this, 121);
VIRTUAL(PostThink, void, void*, this, 262);
VIRTUAL(GetRenderedWeaponModel, CBaseAnimating*, void*, this, 251);
VIRTUAL(PreThink, void, void*, this, 262);
VIRTUAL(Think, void, void*, this, 122);
VIRTUAL(PostThink, void, void*, this, 263);
VIRTUAL(GetRenderedWeaponModel, CBaseAnimating*, void*, this, 252);
inline void SelectItem(const char* ptr, int subtype)
{
reinterpret_cast<void(*)(void*, const char*, int)>(U::Memory.GetVFunc(this, 271))(this, ptr, subtype);
reinterpret_cast<void(*)(void*, const char*, int)>(U::Memory.GetVFunc(this, 272))(this, ptr, subtype);
}
inline bool IsAlive()
@@ -3,7 +3,7 @@
#include "../Types.h"
#include "../../../Utils/Signatures/Signatures.h"
MAKE_SIGNATURE(CCollisionPropert_SetCollisionBounds, "client.dll", "48 8B C4 48 89 58 ? 48 89 70 ? 48 89 78 ? 41 56 48 81 EC ? ? ? ? F2 0F 10 02", 0x0);
MAKE_SIGNATURE(CCollisionProperty_SetCollisionBounds, "client.dll", "48 89 5C 24 ? 48 89 74 24 ? 48 89 7C 24 ? 41 56 48 81 EC ? ? ? ? F3 0F 10 0A", 0x0);
MAKE_SIGNATURE(CCollisionProperty_CalcNearestPoint, "client.dll", "48 89 5C 24 ? 57 48 83 EC ? 49 8B D8 48 8B F9 4C 8D 44 24", 0x0);
struct model_t;
@@ -38,7 +38,7 @@ class CCollisionProperty : public ICollideable
public:
inline void SetCollisionBounds(const Vec3& mins, const Vec3& maxs)
{
S::CCollisionPropert_SetCollisionBounds.Call<void>(this, std::ref(mins), std::ref(maxs));
S::CCollisionProperty_SetCollisionBounds.Call<void>(this, std::ref(mins), std::ref(maxs));
}
inline void CalcNearestPoint(const Vec3& vecWorldPt, Vec3* pVecNearestWorldPt)
@@ -6,5 +6,5 @@ class CEconEntity : public CBaseAnimating
public:
NETVAR(m_iItemDefinitionIndex, int, "CEconEntity", "m_iItemDefinitionIndex");
VIRTUAL(UpdateAttachmentModels, void, void*, this, 212);
VIRTUAL(UpdateAttachmentModels, void, void*, this, 213);
};
@@ -6,11 +6,11 @@ class CEconWearable : public CEconEntity
public:
inline void Equip(CBasePlayer* pOwner)
{
reinterpret_cast<void(*)(void*, CBasePlayer*)>(U::Memory.GetVFunc(this, 229))(this, pOwner);
reinterpret_cast<void(*)(void*, CBasePlayer*)>(U::Memory.GetVFunc(this, 230))(this, pOwner);
};
inline void UnEquip(CBasePlayer* pOwner)
{
reinterpret_cast<void(*)(void*, CBasePlayer*)>(U::Memory.GetVFunc(this, 230))(this, pOwner);
reinterpret_cast<void(*)(void*, CBasePlayer*)>(U::Memory.GetVFunc(this, 231))(this, pOwner);
};
};
+1 -1
View File
@@ -419,7 +419,7 @@ public:
inline void ThirdPersonSwitch(/*bool bThirdperson*/)
{
return reinterpret_cast<void(*)(void*/*, bool*/)>(U::Memory.GetVFunc(this, 255))(this/*, bThirdperson*/);
return reinterpret_cast<void(*)(void*/*, bool*/)>(U::Memory.GetVFunc(this, 256))(this/*, bThirdperson*/);
};
};
@@ -201,18 +201,18 @@ public:
return reinterpret_cast<void*>(uintptr_t(this) + nOffset);
};
VIRTUAL(GetSlot, int, void*, this, 330);
VIRTUAL(GetWeaponID, int, void*, this, 381);
VIRTUAL(GetDamageType, int, void*, this, 382);
VIRTUAL(IsEnergyWeapon, bool, void*, this, 432);
VIRTUAL(AreRandomCritsEnabled, bool, void*, this, 402);
VIRTUAL(GetWeaponSpread, float, void*, this, 467);
VIRTUAL(GetSlot, int, void*, this, 331);
VIRTUAL(GetWeaponID, int, void*, this, 382);
VIRTUAL(GetDamageType, int, void*, this, 383);
VIRTUAL(IsEnergyWeapon, bool, void*, this, 433);
VIRTUAL(AreRandomCritsEnabled, bool, void*, this, 403);
VIRTUAL(GetWeaponSpread, float, void*, this, 468);
OFFSET(m_iWeaponMode, int, 996);
inline float GetSwingRange(CBaseEntity* pLocal)
{
return reinterpret_cast<int(*)(CBaseEntity*)>(U::Memory.GetVFunc(this, 455))(pLocal);
return reinterpret_cast<int(*)(CBaseEntity*)>(U::Memory.GetVFunc(this, 456))(pLocal);
}
inline float GetSwingRange()
@@ -228,7 +228,7 @@ public:
int& iFOV = pOwner->m_iFOV(), nFovBackup = iFOV;
iFOV = 70;
bool bReturn = reinterpret_cast<bool(*)(void*, bool, void*)>(U::Memory.GetVFunc(this, 425))(this, bIsHeadshot, nullptr);
bool bReturn = reinterpret_cast<bool(*)(void*, bool, void*)>(U::Memory.GetVFunc(this, 426))(this, bIsHeadshot, nullptr);
iFOV = nFovBackup;
return bReturn;
}
@@ -344,7 +344,7 @@ public:
inline void GetProjectileFireSetup(void* pPlayer, Vector vecOffset, Vector* vecSrc, QAngle* angForward, bool bHitTeammates = true, float flEndDist = 2000.f)
{
reinterpret_cast<void(*)(CTFWeaponBase*, void*, Vector, Vector*, QAngle*, bool, float)>(U::Memory.GetVFunc(this, 399))(this, pPlayer, vecOffset, vecSrc, angForward, bHitTeammates, flEndDist);
reinterpret_cast<void(*)(CTFWeaponBase*, void*, Vector, Vector*, QAngle*, bool, float)>(U::Memory.GetVFunc(this, 400))(this, pPlayer, vecOffset, vecSrc, angForward, bHitTeammates, flEndDist);
}
inline void GetSpreadAngles(Vec3& out)
@@ -366,7 +366,7 @@ public:
inline float ApplyFireDelay(float flDelay)
{
return reinterpret_cast<float(*)(void*, float)>(U::Memory.GetVFunc(this, 407))(this, flDelay);
return reinterpret_cast<float(*)(void*, float)>(U::Memory.GetVFunc(this, 408))(this, flDelay);
}
inline bool CalcIsAttackCriticalHelperMelee()
+1 -1
View File
@@ -60,7 +60,7 @@ namespace G
inline int Buttons = 0;
inline std::pair<int, int> Target = { 0, 0 };
inline Vec3 AimPosition = {};
inline std::pair<Vec3, int> AimPosition = {};
inline bool SilentAngles = false;
inline bool PSilentAngles = false;
+1 -1
View File
@@ -150,7 +150,7 @@ namespace Vars
CVarEnum(StrafePrediction, 0b11, NONE, Air = 1 << 0, Ground = 1 << 1)
CVarEnum(SplashPrediction, 0, NONE, Off, Include, Prefer, Only)
CVarEnum(AutoDetonate, 0b00, NONE, Stickies = 1 << 0, Flares = 1 << 1, PreventSelfDamage = 1 << 2)
CVarEnum(AutoAirblast, 0, NONE, Off, Legit, Rage)
CVarEnum(AutoAirblast, 0b1000, NONE, Enabled = 1 << 0, RedirectSimple = 1 << 1, RedirectAdvanced = 1 << 2, RespectFOV = 1 << 3)
CVarEnum(Modifiers, 0b1010, NONE, ChargeWeapon = 1 << 0, CancelCharge = 1 << 1, BodyaimIfLethal = 1 << 2, UsePrimeTime = 1 << 3, AimBlastAtFeet = 1 << 4)
CVar(PredictionTime, 2.f)
CVar(Hitchance, 0.f)