mirror of
https://github.com/rei-2/Amalgam
synced 2026-10-10 04:43:09 +08:00
fix misc issues with melee aim
predict shield charge ending in movement prediction misc changes and fixes
This commit is contained in:
@@ -100,13 +100,16 @@ void CAimbot::Store(CBaseEntity* pEntity, size_t iSize)
|
||||
if (!pEntity->IsPlayer())
|
||||
return;
|
||||
|
||||
if (auto pResource = H::Entities.GetResource())
|
||||
{
|
||||
float flDuration = Vars::Visuals::Prediction::PlayerDrawDuration.Value ? Vars::Visuals::Prediction::PlayerDrawDuration.Value : 5.f;
|
||||
m_tPath = { { pEntity->m_vecOrigin() }, I::GlobalVars->curtime + flDuration, Color_t(), Vars::Visuals::Prediction::RealPath.Value };
|
||||
m_iSize = iSize;
|
||||
m_iPlayer = pResource->m_iUserID(pEntity->entindex());
|
||||
}
|
||||
auto pResource = H::Entities.GetResource();
|
||||
if (!pResource)
|
||||
return;
|
||||
|
||||
int iUserID = pResource->m_iUserID(pEntity->entindex());
|
||||
float flDuration = Vars::Visuals::Prediction::PlayerDrawDuration.Value ? Vars::Visuals::Prediction::PlayerDrawDuration.Value : 5.f;
|
||||
m_mRealPaths[iUserID] = {
|
||||
{ { pEntity->m_vecOrigin() }, I::GlobalVars->curtime + flDuration, Color_t(), Vars::Visuals::Prediction::RealPath.Value },
|
||||
iSize
|
||||
};
|
||||
}
|
||||
|
||||
void CAimbot::Store(bool bFrameStageNotify)
|
||||
@@ -122,26 +125,27 @@ void CAimbot::Store(bool bFrameStageNotify)
|
||||
iStaticTickcout = I::GlobalVars->tickcount;
|
||||
}
|
||||
|
||||
if (!m_tPath.m_flTime)
|
||||
return;
|
||||
else if (m_tPath.m_vPath.size() >= m_iSize || m_tPath.m_flTime < I::GlobalVars->curtime)
|
||||
for (auto& [iUserID, tPath] : m_mRealPaths)
|
||||
{
|
||||
if (m_tPath.m_tColor = Vars::Colors::RealPath.Value, m_tPath.m_bZBuffer = true; m_tPath.m_tColor.a)
|
||||
G::PathStorage.push_back(m_tPath);
|
||||
if (m_tPath.m_tColor = Vars::Colors::RealPathIgnoreZ.Value, m_tPath.m_bZBuffer = false; m_tPath.m_tColor.a)
|
||||
G::PathStorage.push_back(m_tPath);
|
||||
m_tPath = {};
|
||||
return;
|
||||
if (tPath.m_tPath.m_vPath.size() >= tPath.m_iSize || tPath.m_tPath.m_flTime < I::GlobalVars->curtime)
|
||||
{
|
||||
if (tPath.m_tPath.m_tColor = Vars::Colors::RealPath.Value, tPath.m_tPath.m_bZBuffer = true; tPath.m_tPath.m_tColor.a)
|
||||
G::PathStorage.push_back(tPath.m_tPath);
|
||||
if (tPath.m_tPath.m_tColor = Vars::Colors::RealPathIgnoreZ.Value, tPath.m_tPath.m_bZBuffer = false; tPath.m_tPath.m_tColor.a)
|
||||
G::PathStorage.push_back(tPath.m_tPath);
|
||||
m_mRealPaths.erase(iUserID);
|
||||
continue;
|
||||
}
|
||||
|
||||
int iIndex = I::EngineClient->GetPlayerForUserID(iUserID);
|
||||
if (bFrameStageNotify ? iIndex == I::EngineClient->GetLocalPlayer() : iIndex != I::EngineClient->GetLocalPlayer())
|
||||
continue;
|
||||
|
||||
auto pPlayer = I::ClientEntityList->GetClientEntity(iIndex)->As<CTFPlayer>();
|
||||
if (!pPlayer)
|
||||
continue;
|
||||
|
||||
for (int i = 0; i < iLag; i++)
|
||||
tPath.m_tPath.m_vPath.push_back(pPlayer->m_vecOrigin());
|
||||
}
|
||||
|
||||
int iIndex = I::EngineClient->GetPlayerForUserID(m_iPlayer);
|
||||
if (bFrameStageNotify ? iIndex == I::EngineClient->GetLocalPlayer() : iIndex != I::EngineClient->GetLocalPlayer())
|
||||
return;
|
||||
|
||||
auto pPlayer = I::ClientEntityList->GetClientEntity(iIndex)->As<CTFPlayer>();
|
||||
if (!pPlayer)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < iLag; i++)
|
||||
m_tPath.m_vPath.push_back(pPlayer->m_vecOrigin());
|
||||
}
|
||||
@@ -1,6 +1,12 @@
|
||||
#pragma once
|
||||
#include "../../SDK/SDK.h"
|
||||
|
||||
struct RealPath_t
|
||||
{
|
||||
DrawPath_t m_tPath = {};
|
||||
size_t m_iSize = 0;
|
||||
};
|
||||
|
||||
class CAimbot
|
||||
{
|
||||
private:
|
||||
@@ -8,9 +14,6 @@ private:
|
||||
void RunMain(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd);
|
||||
void RunAimbot(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd, bool bSecondaryType = false);
|
||||
|
||||
size_t m_iSize = 0;
|
||||
int m_iPlayer = 0;
|
||||
|
||||
public:
|
||||
void Run(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd);
|
||||
void Draw(CTFPlayer* pLocal);
|
||||
@@ -20,7 +23,7 @@ public:
|
||||
bool m_bRan = false;
|
||||
bool m_bRunningSecondary = false;
|
||||
|
||||
DrawPath_t m_tPath = {};
|
||||
std::unordered_map<int, RealPath_t> m_mRealPaths = {};
|
||||
};
|
||||
|
||||
ADD_FEATURE(CAimbot, Aimbot);
|
||||
@@ -114,7 +114,7 @@ static inline std::vector<Target_t> GetTargets(CTFPlayer* pLocal, CTFWeaponBase*
|
||||
|
||||
|
||||
|
||||
int CAimbotMelee::GetSwingTime(CTFWeaponBase* pWeapon, bool bVar)
|
||||
static inline int GetSwingTime(CTFWeaponBase* pWeapon, bool bVar = true)
|
||||
{
|
||||
return pWeapon->GetWeaponID() == TF_WEAPON_KNIFE ? 0
|
||||
: bVar ? Vars::Aimbot::Melee::SwingTicks.Value
|
||||
@@ -139,9 +139,9 @@ void CAimbotMelee::UpdateInfo(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCm
|
||||
|
||||
std::unordered_map<int, MoveStorage> mMoveStorage;
|
||||
|
||||
F::MoveSim.Initialize(pLocal, mMoveStorage[pLocal->entindex()], false, !m_iDoubletapTicks);
|
||||
F::MoveSim.Initialize(pLocal, mMoveStorage[pLocal->entindex()], false, !m_iDoubletapTicks, false);
|
||||
for (auto& tTarget : vTargets)
|
||||
F::MoveSim.Initialize(tTarget.m_pEntity, mMoveStorage[tTarget.m_pEntity->entindex()], false);
|
||||
F::MoveSim.Initialize(tTarget.m_pEntity, mMoveStorage[tTarget.m_pEntity->entindex()], false, true, false);
|
||||
|
||||
int iMax = std::max(m_iSimulatedTicks, m_iDoubletapTicks), iTicks = iMax; bool bSwung = false;
|
||||
Vec3 vLocalOrigin = mMoveStorage[pLocal->entindex()].m_MoveData.m_vecAbsOrigin;
|
||||
@@ -157,9 +157,9 @@ void CAimbotMelee::UpdateInfo(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCm
|
||||
|
||||
if (pLocal->InCond(TF_COND_SHIELD_CHARGE))
|
||||
{ // demo charge fix for swing pred
|
||||
tMoveStorage.m_MoveData.m_flMaxSpeed = tMoveStorage.m_MoveData.m_flClientMaxSpeed = SDK::MaxSpeed(pLocal, false, true);
|
||||
pLocal->m_flMaxspeed() = tMoveStorage.m_MoveData.m_flMaxSpeed;
|
||||
pLocal->RemoveCond(TF_COND_SHIELD_CHARGE);
|
||||
tMoveStorage.m_MoveData.m_flMaxSpeed = tMoveStorage.m_MoveData.m_flClientMaxSpeed = SDK::MaxSpeed(pLocal);
|
||||
pLocal->m_flMaxspeed() = tMoveStorage.m_MoveData.m_flMaxSpeed;
|
||||
}
|
||||
}
|
||||
if (m_iDoubletapTicks && Vars::Doubletap::AntiWarp.Value && pLocal->m_hGroundEntity())
|
||||
@@ -331,28 +331,25 @@ int CAimbotMelee::CanHit(Target_t& tTarget, CTFPlayer* pLocal, CTFWeaponBase* pW
|
||||
std::vector<TickRecord*> vRecords = {};
|
||||
if (F::Backtrack.GetRecords(tTarget.m_pEntity, vRecords))
|
||||
{
|
||||
if (!vRecords.empty())
|
||||
std::vector<int> vTimeMods = {};
|
||||
switch (Vars::Aimbot::Melee::SwingValidateMode.Value)
|
||||
{
|
||||
for (auto& tRecord : vSimRecords)
|
||||
vRecords.push_back(&tRecord);
|
||||
switch (Vars::Aimbot::Melee::SwingValidateMode.Value)
|
||||
{
|
||||
case Vars::Aimbot::Melee::SwingValidateModeEnum::Both:
|
||||
if (m_iSimulatedTicks != m_iSwingTicks)
|
||||
{
|
||||
vRecords = F::Backtrack.GetValidRecords(vRecords, pLocal, true, -TICKS_TO_TIME(m_iSimulatedTicks));
|
||||
vRecords = F::Backtrack.GetValidRecords(vRecords, pLocal, true, -TICKS_TO_TIME(m_iSwingTicks));
|
||||
break;
|
||||
}
|
||||
[[fallthrough]];
|
||||
case Vars::Aimbot::Melee::SwingValidateModeEnum::Swing:
|
||||
vRecords = F::Backtrack.GetValidRecords(vRecords, pLocal, true, -TICKS_TO_TIME(m_iSwingTicks));
|
||||
break;
|
||||
case Vars::Aimbot::Melee::SwingValidateModeEnum::Simulated:
|
||||
vRecords = F::Backtrack.GetValidRecords(vRecords, pLocal, true, -TICKS_TO_TIME(m_iSimulatedTicks));
|
||||
break;
|
||||
}
|
||||
case Vars::Aimbot::Melee::SwingValidateModeEnum::Both:
|
||||
if (m_iSimulatedTicks != m_iSwingTicks)
|
||||
vTimeMods.push_back(m_iSimulatedTicks);
|
||||
[[fallthrough]];
|
||||
case Vars::Aimbot::Melee::SwingValidateModeEnum::Swing:
|
||||
vTimeMods.push_back(m_iSwingTicks);
|
||||
break;
|
||||
case Vars::Aimbot::Melee::SwingValidateModeEnum::Simulated:
|
||||
vTimeMods.push_back(m_iSimulatedTicks);
|
||||
break;
|
||||
}
|
||||
|
||||
for (auto& tRecord : vSimRecords)
|
||||
vRecords.push_back(&tRecord);
|
||||
for (auto iTimeMod : vTimeMods)
|
||||
vRecords = F::Backtrack.GetValidRecords(vRecords, pLocal, true, -TICKS_TO_TIME(iTimeMod));
|
||||
if (vRecords.empty())
|
||||
return false;
|
||||
}
|
||||
@@ -509,7 +506,8 @@ static inline void DrawVisuals(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserC
|
||||
bool bPath = Vars::Visuals::Prediction::SwingLines.Value && Vars::Visuals::Prediction::PlayerPath.Value;
|
||||
bool bLine = Vars::Visuals::Line::TracersEnabled.Value;
|
||||
bool bBoxes = Vars::Visuals::Hitbox::BonesEnabled.Value & Vars::Visuals::Hitbox::BonesEnabledEnum::OnShot;
|
||||
if (bPath || bLine || bBoxes)
|
||||
bool bRealPath = Vars::Visuals::Prediction::RealPath.Value;
|
||||
if (bPath || bLine || bBoxes || bRealPath)
|
||||
{
|
||||
if (pCmd->buttons & IN_ATTACK && G::CanPrimaryAttack && pWeapon->m_flSmackTime() < 0.f)
|
||||
{
|
||||
@@ -531,6 +529,11 @@ static inline void DrawVisuals(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserC
|
||||
G::PathStorage.emplace_back(mPaths[tTarget.m_pEntity->entindex()], !flDuration ? -int(mPaths[tTarget.m_pEntity->entindex()].size()) : I::GlobalVars->curtime + flDuration, Vars::Colors::PlayerPath.Value, Vars::Visuals::Prediction::PlayerPath.Value, true);
|
||||
}
|
||||
}
|
||||
if (int iSwingTime = GetSwingTime(pWeapon, false); bRealPath && iSwingTime)
|
||||
{
|
||||
F::Aimbot.Store(pLocal, iSwingTime);
|
||||
F::Aimbot.Store(tTarget.m_pEntity, iSwingTime);
|
||||
}
|
||||
}
|
||||
if (G::Attacking == 1)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
class CAimbotMelee
|
||||
{
|
||||
private:
|
||||
int GetSwingTime(CTFWeaponBase* pWeapon, bool bVar = true);
|
||||
void UpdateInfo(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd, std::vector<Target_t> vTargets);
|
||||
bool CanBackstab(CBaseEntity* pTarget, CTFPlayer* pLocal, Vec3 vEyeAngles);
|
||||
int CanHit(Target_t& tTarget, CTFPlayer* pLocal, CTFWeaponBase* pWeapon);
|
||||
|
||||
@@ -2984,14 +2984,18 @@ void CMenu::MenuSettings(int iTab)
|
||||
{ // don't indent too much
|
||||
auto sText = std::format("-> {}", x);
|
||||
SetCursorPos(vOriginalPos + ImVec2(-FCalcTextSize(sText.c_str()).x - H::Draw.Scale(10), H::Draw.Scale(7)));
|
||||
PushStyleColor(ImGuiCol_Text, F::Render.Inactive.Value);
|
||||
FText(sText.c_str());
|
||||
PopStyleColor();
|
||||
}
|
||||
|
||||
float flTextWidth = flWidth - H::Draw.Scale(127);
|
||||
PushTransparent(!F::Binds.WillBeEnabled(_iBind), true);
|
||||
|
||||
SetCursorPos(vOriginalPos + ImVec2(H::Draw.Scale(9), H::Draw.Scale(7)));
|
||||
PushStyleColor(ImGuiCol_Text, _tBind.m_bActive ? F::Render.Accent.Value : F::Render.Active.Value);
|
||||
FText(TruncateText(_tBind.m_sName, flTextWidth * (1.f / 3) - H::Draw.Scale(20)).c_str());
|
||||
PopStyleColor();
|
||||
|
||||
SetCursorPos(vOriginalPos + ImVec2(flTextWidth * (1.f / 3), H::Draw.Scale(7)));
|
||||
FText(sType.c_str());
|
||||
|
||||
@@ -69,8 +69,6 @@ static inline void HandleMovement(CTFPlayer* pPlayer, MoveData* pLastRecord, Mov
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!pLastRecord)
|
||||
return;
|
||||
|
||||
if (pPlayer->InCond(TF_COND_SHIELD_CHARGE))
|
||||
{
|
||||
@@ -94,7 +92,7 @@ static inline void HandleMovement(CTFPlayer* pPlayer, MoveData* pLastRecord, Mov
|
||||
case MoveEnum::Air:
|
||||
if (!bLocal)
|
||||
break;
|
||||
else if (Vars::Misc::Movement::AutoStrafe.Value || tCurRecord.m_vDirection.To2D().IsZero() || tCurRecord.m_vVelocity.To2D() == pLastRecord->m_vVelocity.To2D())
|
||||
else if (Vars::Misc::Movement::AutoStrafe.Value || tCurRecord.m_vDirection.To2D().IsZero() || pLastRecord && tCurRecord.m_vVelocity.To2D() == pLastRecord->m_vVelocity.To2D())
|
||||
tCurRecord.m_vDirection = tCurRecord.m_vVelocity.Normalized2D() * 520.f, tCurRecord.m_bInputDirection = false;
|
||||
break;
|
||||
case MoveEnum::Swim:
|
||||
@@ -189,7 +187,7 @@ void CMovementSimulation::StorePlayer(CTFPlayer* pPlayer, CMoveData& tMoveData,
|
||||
|
||||
|
||||
|
||||
bool CMovementSimulation::Initialize(CBaseEntity* pEntity, MoveStorage& tMoveStorage, bool bHitchance, bool bStrafe)
|
||||
bool CMovementSimulation::Initialize(CBaseEntity* pEntity, MoveStorage& tMoveStorage, bool bHitchance, bool bStrafe, bool bPredict)
|
||||
{
|
||||
if (!pEntity || !pEntity->IsPlayer() || !pEntity->As<CTFPlayer>()->IsAlive())
|
||||
{
|
||||
@@ -249,8 +247,11 @@ bool CMovementSimulation::Initialize(CBaseEntity* pEntity, MoveStorage& tMoveSto
|
||||
}
|
||||
|
||||
tMoveStorage.m_vPath = { tMoveStorage.m_MoveData.m_vecAbsOrigin };
|
||||
for (int i = 0; i < H::Entities.GetChoke(pPlayer->entindex()); i++)
|
||||
RunTick(tMoveStorage);
|
||||
if (bPredict)
|
||||
{
|
||||
for (int i = 0; i < H::Entities.GetChoke(pPlayer->entindex()); i++)
|
||||
RunTick(tMoveStorage);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -641,6 +642,21 @@ void CMovementSimulation::RunTick(MoveStorage& tMoveStorage, bool bPath, RunTick
|
||||
I::GlobalVars->frametime = I::Prediction->m_bEnginePaused ? 0.f : TICK_INTERVAL;
|
||||
SetBounds(tMoveStorage.m_pPlayer);
|
||||
|
||||
if (tMoveStorage.m_pPlayer->InCond(TF_COND_SHIELD_CHARGE))
|
||||
{
|
||||
static auto tf_demoman_charge_drain_time = H::ConVars.FindVar("tf_demoman_charge_drain_time");
|
||||
|
||||
float flDrainTime = SDK::AttribHookValue(tf_demoman_charge_drain_time->GetFloat(), "mod_charge_time", tMoveStorage.m_pPlayer);
|
||||
tMoveStorage.m_pPlayer->m_flChargeMeter() -= TICK_INTERVAL * 100.f / flDrainTime;
|
||||
|
||||
if (tMoveStorage.m_pPlayer->m_flChargeMeter() <= 0.f)
|
||||
{
|
||||
tMoveStorage.m_pPlayer->RemoveCond(TF_COND_SHIELD_CHARGE);
|
||||
tMoveStorage.m_MoveData.m_flMaxSpeed = tMoveStorage.m_MoveData.m_flClientMaxSpeed = SDK::MaxSpeed(tMoveStorage.m_pPlayer);
|
||||
tMoveStorage.m_pPlayer->m_flMaxspeed() = tMoveStorage.m_MoveData.m_flMaxSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
float flCorrection = 0.f;
|
||||
if (tMoveStorage.m_flAverageYaw)
|
||||
{
|
||||
@@ -670,8 +686,8 @@ void CMovementSimulation::RunTick(MoveStorage& tMoveStorage, bool bPath, RunTick
|
||||
|
||||
tMoveStorage.m_MoveData.m_flClientMaxSpeed = flOldSpeed;
|
||||
|
||||
tMoveStorage.m_flSimTime += TICK_INTERVAL;
|
||||
tMoveStorage.m_bPredictNetworked = tMoveStorage.m_flSimTime >= tMoveStorage.m_flPredictedSimTime;
|
||||
tMoveStorage.m_flSimTime = ROUND_TO_TICKS(tMoveStorage.m_flSimTime + TICK_INTERVAL);
|
||||
tMoveStorage.m_bPredictNetworked = TIME_TO_TICKS(tMoveStorage.m_flSimTime) >= TIME_TO_TICKS(tMoveStorage.m_flPredictedSimTime);
|
||||
if (tMoveStorage.m_bPredictNetworked)
|
||||
{
|
||||
tMoveStorage.m_vPredictedOrigin = tMoveStorage.m_MoveData.m_vecAbsOrigin;
|
||||
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
void Store();
|
||||
void StorePlayer(CTFPlayer* pPlayer, CMoveData& tMoveData, float flTime);
|
||||
|
||||
bool Initialize(CBaseEntity* pEntity, MoveStorage& tMoveStorage, bool bHitchance = true, bool bStrafe = true);
|
||||
bool Initialize(CBaseEntity* pEntity, MoveStorage& tMoveStorage, bool bHitchance = true, bool bStrafe = true, bool bPredict = true);
|
||||
bool SetDuck(MoveStorage& tMoveStorage, bool bDuck);
|
||||
void RunTick(MoveStorage& tMoveStorage, bool bPath = true, RunTickCallback* pCallback = nullptr);
|
||||
void RunTick(MoveStorage& tMoveStorage, bool bPath, RunTickCallback fCallback);
|
||||
|
||||
@@ -127,7 +127,7 @@ bool CProjectileSimulation::GetInfoMain(CTFPlayer* pPlayer, CTFWeaponBase* pWeap
|
||||
SDK::GetProjectileFireSetup(pPlayer, vAngles, { 16.f, 8.f, -6.f }, vPos, vAngle, 0.f, 0.f, bInterp);
|
||||
|
||||
auto uType = bCannon ? FNV1A::Hash32Const("models/weapons/w_models/w_cannonball.mdl") : FNV1A::Hash32Const("models/weapons/w_models/w_grenade_grenadelauncher.mdl");
|
||||
Vec3 vHull = pWeapon->GetWeaponID() == TF_WEAPON_CANNON ? Vec3(6.f, 6.f, 6.f) : !SDK::AttribHookValue(0, "grenade_no_spin", pWeapon) ? Vec3(5.f, 5.f, 5.f) : Vec3(3.f, 3.f, 3.f);
|
||||
Vec3 vHull = pWeapon->GetWeaponID() == TF_WEAPON_CANNON ? Vec3(6.f, 6.f, 6.f) : !SDK::AttribHookValue(0, "grenade_no_spin", pWeapon) ? Vec3(5.f, 5.f, 5.f) : Vec3(4.f, 4.f, 4.f);
|
||||
float flSpeed = SDK::AttribHookValue(pPlayer->InCond(TF_COND_RUNE_PRECISION) ? 3000.f : SDK::AttribHookValue(1200.f, "mult_projectile_speed", pWeapon), "mult_projectile_range", pWeapon);
|
||||
float flLifeTime = flMortar
|
||||
? pWeapon->As<CTFGrenadeLauncher>()->m_flDetonateTime() > 0.f ? pWeapon->As<CTFGrenadeLauncher>()->m_flDetonateTime() - I::GlobalVars->curtime : flMortar
|
||||
|
||||
@@ -532,7 +532,7 @@ void CVisuals::DrawEffects()
|
||||
|
||||
H::Draw.RenderTriangle(tTriangle.m_aOrigin[0], tTriangle.m_aOrigin[1], tTriangle.m_aOrigin[2], tTriangle.m_tColor, tTriangle.m_bZBuffer);
|
||||
}
|
||||
if (auto& tPath = F::Aimbot.m_tPath; tPath.m_flTime)
|
||||
for (auto& [tPath, _] :F::Aimbot.m_mRealPaths | std::views::values)
|
||||
{
|
||||
H::Draw.RenderPath(tPath.m_vPath, Vars::Colors::RealPath.Value, true, tPath.m_iStyle, tPath.m_flTime);
|
||||
H::Draw.RenderPath(tPath.m_vPath, Vars::Colors::RealPathIgnoreZ.Value, false, tPath.m_iStyle, tPath.m_flTime);
|
||||
|
||||
+16
-17
@@ -200,9 +200,6 @@ NAMESPACE_BEGIN(Vars)
|
||||
NAMESPACE_END(Menu)
|
||||
|
||||
NAMESPACE_BEGIN(Colors)
|
||||
CVar(FOVCircle, "FOV circle color", Color_t(255, 255, 255, 100), VISUAL);
|
||||
CVar(Local, "Local color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
|
||||
CVar(IndicatorGood, "Indicator good", Color_t(0, 255, 100, 255), NOSAVE | DEBUGVAR);
|
||||
CVar(IndicatorMid, "Indicator mid", Color_t(255, 200, 0, 255), NOSAVE | DEBUGVAR);
|
||||
CVar(IndicatorBad, "Indicator bad", Color_t(255, 0, 0, 255), NOSAVE | DEBUGVAR);
|
||||
@@ -212,6 +209,10 @@ NAMESPACE_BEGIN(Vars)
|
||||
CVar(IndicatorTextBad, "Indicator text bad", Color_t(255, 150, 150, 255), NOSAVE | DEBUGVAR);
|
||||
CVar(IndicatorTextMisc, "Indicator text misc", Color_t(100, 255, 255, 255), NOSAVE | DEBUGVAR);
|
||||
|
||||
CVar(Local, "Local color", Color_t(255, 255, 255), VISUAL);
|
||||
CVar(FOVCircle, "FOV circle color", Color_t(255, 255, 255, 100), VISUAL);
|
||||
CVar(SpellFootstep, "Spell footstep color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
|
||||
CVar(WorldModulation, VA_LIST("World modulation", "World modulation color"), Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(SkyModulation, VA_LIST("Sky modulation", "Sky modulation color"), Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(PropModulation, VA_LIST("Prop modulation", "Prop modulation color"), Color_t(255, 255, 255, 255), VISUAL);
|
||||
@@ -221,19 +222,6 @@ NAMESPACE_BEGIN(Vars)
|
||||
CVar(Line, "Line color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(LineIgnoreZ, "Line ignore Z color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
|
||||
CVar(PlayerPath, "Player path color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(PlayerPathIgnoreZ, "Player path ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(ProjectilePath, "Projectile path color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(ProjectilePathIgnoreZ, "Projectile path ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(TrajectoryPath, "Trajectory path color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(TrajectoryPathIgnoreZ, "Trajectory path ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(ShotPath, "Shot path color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(ShotPathIgnoreZ, "Shot path ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(SplashRadius, "Splash radius color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(SplashRadiusIgnoreZ, "Splash radius ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(RealPath, "Real path color", Color_t(255, 255, 255, 0), NOSAVE | DEBUGVAR);
|
||||
CVar(RealPathIgnoreZ, "Real path ignore Z color", Color_t(255, 255, 255, 255), NOSAVE | DEBUGVAR);
|
||||
|
||||
CVar(BoneHitboxEdge, "Bone hitbox edge color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(BoneHitboxEdgeIgnoreZ, "Bone hitbox edge ignore Z color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(BoneHitboxFace, "Bone hitbox face color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
@@ -247,7 +235,18 @@ NAMESPACE_BEGIN(Vars)
|
||||
CVar(BoundHitboxFace, "Bound hitbox face color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(BoundHitboxFaceIgnoreZ, "Bound hitbox face ignore Z color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
|
||||
CVar(SpellFootstep, "Spell footstep color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(PlayerPath, "Player path color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(PlayerPathIgnoreZ, "Player path ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(ProjectilePath, "Projectile path color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(ProjectilePathIgnoreZ, "Projectile path ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(TrajectoryPath, "Trajectory path color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(TrajectoryPathIgnoreZ, "Trajectory path ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(ShotPath, "Shot path color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(ShotPathIgnoreZ, "Shot path ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(SplashRadius, "Splash radius color", Color_t(255, 255, 255, 0), VISUAL);
|
||||
CVar(SplashRadiusIgnoreZ, "Splash radius ignore Z color", Color_t(255, 255, 255, 255), VISUAL);
|
||||
CVar(RealPath, "Real path color", Color_t(255, 255, 255, 0), NOSAVE | DEBUGVAR);
|
||||
CVar(RealPathIgnoreZ, "Real path ignore Z color", Color_t(255, 255, 255, 255), NOSAVE | DEBUGVAR);
|
||||
NAMESPACE_END(Colors)
|
||||
|
||||
NAMESPACE_BEGIN(Aimbot)
|
||||
|
||||
Reference in New Issue
Block a user