mirror of
https://github.com/rei-2/Amalgam.git
synced 2026-10-11 09:48:12 +08:00
fix for latest game update
update auto airblast flags for future use some misc fixes/changes
This commit is contained in:
1 parent
cc99a5aef6
commit
9762bdd6e2
21 files changed
+119
-118
No files matched your search
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
};
|
||||
@@ -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()
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user