mirror of
https://github.com/rei-2/Amalgam
synced 2026-10-10 04:43:09 +08:00
clean up/move some menu elements
fix a couple misc issues
This commit is contained in:
@@ -918,7 +918,7 @@
|
||||
<ClCompile Include="src\Features\Misc\AutoQueue\AutoQueue.cpp" />
|
||||
<ClCompile Include="src\Features\Backtrack\Backtrack.cpp" />
|
||||
<ClCompile Include="src\Features\Visuals\CameraWindow\CameraWindow.cpp" />
|
||||
<ClCompile Include="src\Features\CheaterDetection\CheaterDetection.cpp" />
|
||||
<ClCompile Include="src\Features\CheatDetection\CheatDetection.cpp" />
|
||||
<ClCompile Include="src\Features\Commands\Commands.cpp" />
|
||||
<ClCompile Include="src\Features\Binds\Binds.cpp" />
|
||||
<ClCompile Include="src\Features\Configs\Configs.cpp" />
|
||||
@@ -1228,7 +1228,7 @@
|
||||
<ClInclude Include="src\Features\Output\Output.h" />
|
||||
<ClInclude Include="src\Features\Misc\AutoQueue\AutoQueue.h" />
|
||||
<ClInclude Include="src\Features\Backtrack\Backtrack.h" />
|
||||
<ClInclude Include="src\Features\CheaterDetection\CheaterDetection.h" />
|
||||
<ClInclude Include="src\Features\CheatDetection\CheatDetection.h" />
|
||||
<ClInclude Include="src\Features\CritHack\CritHack.h" />
|
||||
<ClInclude Include="src\Features\EnginePrediction\EnginePrediction.h" />
|
||||
<ClInclude Include="src\Features\ImGui\Fonts\CascadiaMono\CascadiaMono.h" />
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<ClCompile Include="src\Features\Aimbot\AutoHeal\AutoHeal.cpp" />
|
||||
<ClCompile Include="src\Features\Misc\AutoQueue\AutoQueue.cpp" />
|
||||
<ClCompile Include="src\Features\Backtrack\Backtrack.cpp" />
|
||||
<ClCompile Include="src\Features\CheaterDetection\CheaterDetection.cpp" />
|
||||
<ClCompile Include="src\Features\CheatDetection\CheatDetection.cpp" />
|
||||
<ClCompile Include="src\Features\CritHack\CritHack.cpp" />
|
||||
<ClCompile Include="src\Features\EnginePrediction\EnginePrediction.cpp" />
|
||||
<ClCompile Include="src\Features\Misc\Misc.cpp" />
|
||||
@@ -393,7 +393,7 @@
|
||||
<ClInclude Include="src\Features\Aimbot\AutoHeal\AutoHeal.h" />
|
||||
<ClInclude Include="src\Features\Misc\AutoQueue\AutoQueue.h" />
|
||||
<ClInclude Include="src\Features\Backtrack\Backtrack.h" />
|
||||
<ClInclude Include="src\Features\CheaterDetection\CheaterDetection.h" />
|
||||
<ClInclude Include="src\Features\CheatDetection\CheatDetection.h" />
|
||||
<ClInclude Include="src\Features\CritHack\CritHack.h" />
|
||||
<ClInclude Include="src\Features\EnginePrediction\EnginePrediction.h" />
|
||||
<ClInclude Include="src\Features\Misc\Misc.h" />
|
||||
|
||||
@@ -197,10 +197,13 @@ void CAutoRocketJump::Run(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* p
|
||||
SDK::Output("Auto jump", std::format("Ticks to hit: {} ({})", m_iDelay, n).c_str(), { 255, 0, 0 }, Vars::Debug::Logging.Value);
|
||||
if (Vars::Debug::Info.Value)
|
||||
{
|
||||
Vec3 vAngles = Math::VectorAngles(trace.plane.normal);
|
||||
G::LineStorage.clear(); G::BoxStorage.clear();
|
||||
G::BoxStorage.emplace_back(trace.endpos + trace.plane.normal, Vec3::Get(-1), Vec3::Get(1), vAngles, I::GlobalVars->curtime + 5.f, Color_t(), Color_t(0, 0, 0, 0), true);
|
||||
G::LineStorage.emplace_back(std::pair<Vec3, Vec3>(tMoveStorage.m_MoveData.m_vecAbsOrigin + pLocal->m_vecViewOffset(), trace.endpos + trace.plane.normal), I::GlobalVars->curtime + 5.f, Color_t(), true);
|
||||
G::PathStorage.clear(); G::BoxStorage.clear(); G::LineStorage.clear();
|
||||
tProjInfo.m_vPath.push_back(trace.endpos + trace.plane.normal);
|
||||
|
||||
G::PathStorage.emplace_back(tMoveStorage.m_vPath, I::GlobalVars->curtime + 5.f, Color_t(255, 255, 255), Vars::Visuals::Path::StyleEnum::Line);
|
||||
G::BoxStorage.emplace_back(tMoveStorage.m_MoveData.m_vecAbsOrigin, pLocal->m_vecMins(), pLocal->m_vecMaxs(), Vec3(), I::GlobalVars->curtime + 5.f, Color_t(255, 255, 255), Color_t(0, 0, 0, 0), true);
|
||||
G::PathStorage.emplace_back(tProjInfo.m_vPath, I::GlobalVars->curtime + 5.f, Color_t(255, 150, 150), Vars::Visuals::Path::StyleEnum::Line);
|
||||
G::BoxStorage.emplace_back(tProjInfo.m_vPath.back(), Vec3::Get(-1), Vec3::Get(1), Vec3() /*Math::VectorAngles(trace.plane.normal)*/, I::GlobalVars->curtime + 5.f, Color_t(255, 150, 150), Color_t(0, 0, 0, 0), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -260,19 +263,22 @@ void CAutoRocketJump::Run(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* p
|
||||
if (m_iFrame <= m_iChoke)
|
||||
G::PSilentAngles = true, G::SilentAngles = false; // only con to this is that you may not be able to choke depending on the ticks charged
|
||||
|
||||
if (m_iDelay > 1)
|
||||
if (bCurrGrounded)
|
||||
{
|
||||
switch (m_iFrame - m_iDelay + 1)
|
||||
if (m_iDelay > 1)
|
||||
{
|
||||
case 0:
|
||||
pCmd->buttons |= IN_DUCK;
|
||||
break;
|
||||
case 1:
|
||||
pCmd->buttons |= IN_JUMP;
|
||||
switch (m_iFrame - m_iDelay + 1)
|
||||
{
|
||||
case 0:
|
||||
pCmd->buttons |= IN_DUCK;
|
||||
break;
|
||||
case 1:
|
||||
pCmd->buttons |= IN_JUMP;
|
||||
}
|
||||
}
|
||||
else // won't ctap in time
|
||||
pCmd->buttons |= IN_DUCK | IN_JUMP;
|
||||
}
|
||||
else // won't ctap in time
|
||||
pCmd->buttons |= IN_DUCK | IN_JUMP;
|
||||
|
||||
if (m_iFrame == m_iDelay + 3)
|
||||
m_iFrame = -1;
|
||||
|
||||
+23
-23
@@ -1,11 +1,11 @@
|
||||
#include "CheaterDetection.h"
|
||||
#include "CheatDetection.h"
|
||||
|
||||
#include "../Players/PlayerUtils.h"
|
||||
#include "../Output/Output.h"
|
||||
|
||||
bool CCheaterDetection::ShouldScan()
|
||||
bool CCheatDetection::ShouldScan()
|
||||
{
|
||||
if (!Vars::CheaterDetection::Methods.Value /*|| I::EngineClient->IsPlayingDemo()*/)
|
||||
if (!Vars::CheatDetection::Methods.Value /*|| I::EngineClient->IsPlayingDemo()*/)
|
||||
return false;
|
||||
|
||||
static int iStaticTickcount = I::GlobalVars->tickcount;
|
||||
@@ -21,23 +21,23 @@ bool CCheaterDetection::ShouldScan()
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CCheaterDetection::InvalidPitch(CTFPlayer* pEntity)
|
||||
bool CCheatDetection::InvalidPitch(CTFPlayer* pEntity)
|
||||
{
|
||||
return Vars::CheaterDetection::Methods.Value & Vars::CheaterDetection::MethodsEnum::InvalidPitch && fabsf(pEntity->m_angEyeAnglesX()) == 90.f;
|
||||
return Vars::CheatDetection::Methods.Value & Vars::CheatDetection::MethodsEnum::InvalidPitch && fabsf(pEntity->m_angEyeAnglesX()) == 90.f;
|
||||
}
|
||||
|
||||
bool CCheaterDetection::IsChoking(CTFPlayer* pEntity)
|
||||
bool CCheatDetection::IsChoking(CTFPlayer* pEntity)
|
||||
{
|
||||
bool bReturn = mData[pEntity].m_PacketChoking.m_bInfract;
|
||||
mData[pEntity].m_PacketChoking.m_bInfract = false;
|
||||
|
||||
return Vars::CheaterDetection::Methods.Value & Vars::CheaterDetection::MethodsEnum::PacketChoking && bReturn;
|
||||
return Vars::CheatDetection::Methods.Value & Vars::CheatDetection::MethodsEnum::PacketChoking && bReturn;
|
||||
}
|
||||
|
||||
bool CCheaterDetection::IsFlicking(CTFPlayer* pEntity) // awful
|
||||
bool CCheatDetection::IsFlicking(CTFPlayer* pEntity) // awful
|
||||
{
|
||||
auto& vAngles = mData[pEntity].m_AimFlicking.m_vAngles;
|
||||
if (!(Vars::CheaterDetection::Methods.Value & Vars::CheaterDetection::MethodsEnum::AimFlicking))
|
||||
if (!(Vars::CheatDetection::Methods.Value & Vars::CheatDetection::MethodsEnum::AimFlicking))
|
||||
{
|
||||
vAngles.clear();
|
||||
return false;
|
||||
@@ -48,17 +48,17 @@ bool CCheaterDetection::IsFlicking(CTFPlayer* pEntity) // awful
|
||||
vAngles.pop_back();
|
||||
|
||||
if (vAngles.size() != 3 || !vAngles[0].m_bAttacking && !vAngles[1].m_bAttacking && !vAngles[2].m_bAttacking
|
||||
|| Math::CalcFov(vAngles[0].m_vAngle, vAngles[1].m_vAngle) < Vars::CheaterDetection::MinimumFlick.Value
|
||||
|| Math::CalcFov(vAngles[0].m_vAngle, vAngles[2].m_vAngle) > Vars::CheaterDetection::MaximumNoise.Value * (TICK_INTERVAL / 0.015f))
|
||||
|| Math::CalcFov(vAngles[0].m_vAngle, vAngles[1].m_vAngle) < Vars::CheatDetection::MinFlick.Value
|
||||
|| Math::CalcFov(vAngles[0].m_vAngle, vAngles[2].m_vAngle) > Vars::CheatDetection::MaxNoise.Value * (TICK_INTERVAL / 0.015f))
|
||||
return false;
|
||||
|
||||
vAngles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CCheaterDetection::IsDuckSpeed(CTFPlayer* pEntity)
|
||||
bool CCheatDetection::IsDuckSpeed(CTFPlayer* pEntity)
|
||||
{
|
||||
if (!(Vars::CheaterDetection::Methods.Value & Vars::CheaterDetection::MethodsEnum::DuckSpeed)
|
||||
if (!(Vars::CheatDetection::Methods.Value & Vars::CheatDetection::MethodsEnum::DuckSpeed)
|
||||
|| !pEntity->IsDucking() || !pEntity->IsOnGround()
|
||||
|| pEntity->m_vecVelocity().Length2D() < pEntity->m_flMaxspeed() * 0.5f)
|
||||
{
|
||||
@@ -78,13 +78,13 @@ bool CCheaterDetection::IsDuckSpeed(CTFPlayer* pEntity)
|
||||
return false;
|
||||
}
|
||||
|
||||
void CCheaterDetection::Infract(CTFPlayer* pEntity, const char* sReason)
|
||||
void CCheatDetection::Infract(CTFPlayer* pEntity, const char* sReason)
|
||||
{
|
||||
bool bMark = false;
|
||||
if (Vars::CheaterDetection::DetectionsRequired.Value)
|
||||
if (Vars::CheatDetection::DetectionsRequired.Value)
|
||||
{
|
||||
mData[pEntity].m_iDetections++;
|
||||
bMark = mData[pEntity].m_iDetections >= Vars::CheaterDetection::DetectionsRequired.Value;
|
||||
bMark = mData[pEntity].m_iDetections >= Vars::CheatDetection::DetectionsRequired.Value;
|
||||
}
|
||||
|
||||
F::Output.CheatDetection(mData[pEntity].m_sName, bMark ? "marked" : "infracted", sReason);
|
||||
@@ -95,7 +95,7 @@ void CCheaterDetection::Infract(CTFPlayer* pEntity, const char* sReason)
|
||||
}
|
||||
}
|
||||
|
||||
void CCheaterDetection::Run()
|
||||
void CCheatDetection::Run()
|
||||
{
|
||||
if (!ShouldScan() || !I::EngineClient->IsConnected() || I::EngineClient->IsPlayingDemo())
|
||||
return;
|
||||
@@ -134,14 +134,14 @@ void CCheaterDetection::Run()
|
||||
}
|
||||
}
|
||||
|
||||
void CCheaterDetection::Reset()
|
||||
void CCheatDetection::Reset()
|
||||
{
|
||||
mData.clear();
|
||||
}
|
||||
|
||||
void CCheaterDetection::ReportChoke(CTFPlayer* pEntity, int iChoke)
|
||||
void CCheatDetection::ReportChoke(CTFPlayer* pEntity, int iChoke)
|
||||
{
|
||||
if (Vars::CheaterDetection::Methods.Value & Vars::CheaterDetection::MethodsEnum::PacketChoking)
|
||||
if (Vars::CheatDetection::Methods.Value & Vars::CheatDetection::MethodsEnum::PacketChoking)
|
||||
{
|
||||
mData[pEntity].m_PacketChoking.m_vChokes.push_back(iChoke);
|
||||
if (mData[pEntity].m_PacketChoking.m_vChokes.size() == 3)
|
||||
@@ -149,7 +149,7 @@ void CCheaterDetection::ReportChoke(CTFPlayer* pEntity, int iChoke)
|
||||
mData[pEntity].m_PacketChoking.m_bInfract = true; // check for last 3 choke amounts
|
||||
for (auto& iChoke : mData[pEntity].m_PacketChoking.m_vChokes)
|
||||
{
|
||||
if (iChoke < Vars::CheaterDetection::MinimumChoking.Value)
|
||||
if (iChoke < Vars::CheatDetection::MinChoking.Value)
|
||||
mData[pEntity].m_PacketChoking.m_bInfract = false;
|
||||
}
|
||||
mData[pEntity].m_PacketChoking.m_vChokes.clear();
|
||||
@@ -159,9 +159,9 @@ void CCheaterDetection::ReportChoke(CTFPlayer* pEntity, int iChoke)
|
||||
mData[pEntity].m_PacketChoking.m_vChokes.clear();
|
||||
}
|
||||
|
||||
void CCheaterDetection::ReportDamage(IGameEvent* pEvent)
|
||||
void CCheatDetection::ReportDamage(IGameEvent* pEvent)
|
||||
{
|
||||
if (!(Vars::CheaterDetection::Methods.Value & Vars::CheaterDetection::MethodsEnum::AimFlicking))
|
||||
if (!(Vars::CheatDetection::Methods.Value & Vars::CheatDetection::MethodsEnum::AimFlicking))
|
||||
return;
|
||||
|
||||
int iIndex = I::EngineClient->GetPlayerForUserID(pEvent->GetInt("attacker"));
|
||||
+2
-2
@@ -31,7 +31,7 @@ struct PlayerInfo
|
||||
} m_DuckSpeed;
|
||||
};
|
||||
|
||||
class CCheaterDetection
|
||||
class CCheatDetection
|
||||
{
|
||||
private:
|
||||
bool ShouldScan();
|
||||
@@ -53,4 +53,4 @@ public:
|
||||
void Reset();
|
||||
};
|
||||
|
||||
ADD_FEATURE(CCheaterDetection, CheaterDetection);
|
||||
ADD_FEATURE(CCheatDetection, CheatDetection);
|
||||
@@ -629,6 +629,82 @@ void CMenu::MenuHVH(int iTab)
|
||||
{
|
||||
/* Column 1 */
|
||||
TableNextColumn();
|
||||
{
|
||||
if (Section("Antiaim", 8))
|
||||
{
|
||||
FToggle(Vars::AntiAim::Enabled, FToggleEnum::Left);
|
||||
FToggle(Vars::AntiAim::HidePitchOnShot, FToggleEnum::Right);
|
||||
FDropdown(Vars::AntiAim::PitchReal, FDropdownEnum::Left);
|
||||
FDropdown(Vars::AntiAim::PitchFake, FDropdownEnum::Right);
|
||||
FDropdown(Vars::AntiAim::YawReal, FDropdownEnum::Left);
|
||||
FDropdown(Vars::AntiAim::YawFake, FDropdownEnum::Right);
|
||||
FDropdown(Vars::AntiAim::RealYawBase, FDropdownEnum::Left);
|
||||
FDropdown(Vars::AntiAim::FakeYawBase, FDropdownEnum::Right);
|
||||
FSlider(Vars::AntiAim::RealYawOffset, FSliderEnum::Left);
|
||||
FSlider(Vars::AntiAim::FakeYawOffset, FSliderEnum::Right);
|
||||
PushTransparent(Vars::AntiAim::YawReal.Value != Vars::AntiAim::YawEnum::Edge && Vars::AntiAim::YawReal.Value != Vars::AntiAim::YawEnum::Jitter);
|
||||
{
|
||||
FSlider(Vars::AntiAim::RealYawValue, FSliderEnum::Left);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(Vars::AntiAim::YawFake.Value != Vars::AntiAim::YawEnum::Edge && Vars::AntiAim::YawFake.Value != Vars::AntiAim::YawEnum::Jitter);
|
||||
{
|
||||
FSlider(Vars::AntiAim::FakeYawValue, FSliderEnum::Right);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(Vars::AntiAim::YawFake.Value != Vars::AntiAim::YawEnum::Spin && Vars::AntiAim::YawReal.Value != Vars::AntiAim::YawEnum::Spin);
|
||||
{
|
||||
FSlider(Vars::AntiAim::SpinSpeed, FSliderEnum::Left);
|
||||
}
|
||||
PopTransparent();
|
||||
SetCursorPos({ GetWindowWidth() / 2 + GetStyle().WindowPadding.x / 2, GetRowPos() + H::Draw.Scale(8) });
|
||||
FToggle(Vars::AntiAim::MinWalk, FToggleEnum::Left);
|
||||
} EndSection();
|
||||
if (Vars::Debug::Options.Value)
|
||||
{
|
||||
if (Section("##Debug Antiaim"))
|
||||
{
|
||||
FText("Debug", { 5, 5 });
|
||||
if (FPopupButton("Debug", { 0, -5 }))
|
||||
{
|
||||
FToggle(Vars::AntiAim::AntiAimLines);
|
||||
|
||||
EndPopup();
|
||||
}
|
||||
} EndSection();
|
||||
}
|
||||
if (Section("Resolver", 8))
|
||||
{
|
||||
FToggle(Vars::Resolver::Enabled, FToggleEnum::Left);
|
||||
PushTransparent(!Vars::Resolver::Enabled.Value);
|
||||
{
|
||||
FToggle(Vars::Resolver::AutoResolve, FToggleEnum::Right);
|
||||
PushTransparent(Transparent || !Vars::Resolver::AutoResolve.Value);
|
||||
{
|
||||
FToggle(Vars::Resolver::AutoResolveCheatersOnly, FToggleEnum::Left);
|
||||
FToggle(Vars::Resolver::AutoResolveHeadshotOnly, FToggleEnum::Right);
|
||||
PushTransparent(Transparent || !Vars::Resolver::AutoResolveYawAmount.Value);
|
||||
{
|
||||
FSlider(Vars::Resolver::AutoResolveYawAmount, FSliderEnum::Left);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(Transparent || !Vars::Resolver::AutoResolvePitchAmount.Value);
|
||||
{
|
||||
FSlider(Vars::Resolver::AutoResolvePitchAmount, FSliderEnum::Right);
|
||||
}
|
||||
PopTransparent();
|
||||
}
|
||||
PopTransparent();
|
||||
FSlider(Vars::Resolver::CycleYaw, FSliderEnum::Left);
|
||||
FSlider(Vars::Resolver::CyclePitch, FSliderEnum::Right);
|
||||
FToggle(Vars::Resolver::CycleView, FToggleEnum::Left);
|
||||
FToggle(Vars::Resolver::CycleMinwalk, FToggleEnum::Right);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
}
|
||||
/* Column 2 */
|
||||
TableNextColumn();
|
||||
{
|
||||
if (Section("Doubletap", 8))
|
||||
{
|
||||
@@ -671,113 +747,15 @@ void CMenu::MenuHVH(int iTab)
|
||||
}
|
||||
} EndSection();
|
||||
}
|
||||
if (Section("Antiaim", 8))
|
||||
{
|
||||
FToggle(Vars::AntiAim::Enabled);
|
||||
FDropdown(Vars::AntiAim::PitchReal, FDropdownEnum::Left);
|
||||
FDropdown(Vars::AntiAim::PitchFake, FDropdownEnum::Right);
|
||||
FDropdown(Vars::AntiAim::YawReal, FDropdownEnum::Left);
|
||||
FDropdown(Vars::AntiAim::YawFake, FDropdownEnum::Right);
|
||||
FDropdown(Vars::AntiAim::RealYawBase, FDropdownEnum::Left);
|
||||
FDropdown(Vars::AntiAim::FakeYawBase, FDropdownEnum::Right);
|
||||
FSlider(Vars::AntiAim::RealYawOffset, FSliderEnum::Left);
|
||||
FSlider(Vars::AntiAim::FakeYawOffset, FSliderEnum::Right);
|
||||
PushTransparent(Vars::AntiAim::YawReal.Value != Vars::AntiAim::YawEnum::Edge && Vars::AntiAim::YawReal.Value != Vars::AntiAim::YawEnum::Jitter);
|
||||
{
|
||||
FSlider(Vars::AntiAim::RealYawValue, FSliderEnum::Left);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(Vars::AntiAim::YawFake.Value != Vars::AntiAim::YawEnum::Edge && Vars::AntiAim::YawFake.Value != Vars::AntiAim::YawEnum::Jitter);
|
||||
{
|
||||
FSlider(Vars::AntiAim::FakeYawValue, FSliderEnum::Right);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(Vars::AntiAim::YawFake.Value != Vars::AntiAim::YawEnum::Spin && Vars::AntiAim::YawReal.Value != Vars::AntiAim::YawEnum::Spin);
|
||||
{
|
||||
FSlider(Vars::AntiAim::SpinSpeed, FSliderEnum::Left);
|
||||
}
|
||||
PopTransparent();
|
||||
SetCursorPos({ GetWindowWidth() / 2 + GetStyle().WindowPadding.x / 2, GetRowPos() + H::Draw.Scale(8) });
|
||||
FToggle(Vars::AntiAim::MinWalk, FToggleEnum::Left);
|
||||
FToggle(Vars::AntiAim::AntiOverlap, FToggleEnum::Left);
|
||||
FToggle(Vars::AntiAim::InvalidShootPitch, FToggleEnum::Right);
|
||||
} EndSection();
|
||||
if (Vars::Debug::Options.Value)
|
||||
{
|
||||
if (Section("##Debug Antiaim"))
|
||||
{
|
||||
FText("Debug", { 5, 5 });
|
||||
if (FPopupButton("Debug", { 0, -5 }))
|
||||
{
|
||||
FToggle(Vars::AntiAim::AntiAimLines, FToggleEnum::Left);
|
||||
|
||||
EndPopup();
|
||||
}
|
||||
} EndSection();
|
||||
}
|
||||
}
|
||||
/* Column 2 */
|
||||
TableNextColumn();
|
||||
{
|
||||
if (Section("Resolver", 8))
|
||||
{
|
||||
FToggle(Vars::Resolver::Enabled, FToggleEnum::Left);
|
||||
PushTransparent(!Vars::Resolver::Enabled.Value);
|
||||
{
|
||||
FToggle(Vars::Resolver::AutoResolve, FToggleEnum::Right);
|
||||
PushTransparent(Transparent || !Vars::Resolver::AutoResolve.Value);
|
||||
{
|
||||
FToggle(Vars::Resolver::AutoResolveCheatersOnly, FToggleEnum::Left);
|
||||
FToggle(Vars::Resolver::AutoResolveHeadshotOnly, FToggleEnum::Right);
|
||||
PushTransparent(Transparent || !Vars::Resolver::AutoResolveYawAmount.Value);
|
||||
{
|
||||
FSlider(Vars::Resolver::AutoResolveYawAmount, FSliderEnum::Left);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(Transparent || !Vars::Resolver::AutoResolvePitchAmount.Value);
|
||||
{
|
||||
FSlider(Vars::Resolver::AutoResolvePitchAmount, FSliderEnum::Right);
|
||||
}
|
||||
PopTransparent();
|
||||
}
|
||||
PopTransparent();
|
||||
FSlider(Vars::Resolver::CycleYaw, FSliderEnum::Left);
|
||||
FSlider(Vars::Resolver::CyclePitch, FSliderEnum::Right);
|
||||
FToggle(Vars::Resolver::CycleView, FToggleEnum::Left);
|
||||
FToggle(Vars::Resolver::CycleMinwalk, FToggleEnum::Right);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
if (Section("Auto Peek", 8))
|
||||
{
|
||||
FToggle(Vars::AutoPeek::Enabled);
|
||||
} EndSection();
|
||||
if (Section("Cheater Detection"))
|
||||
{
|
||||
FDropdown(Vars::CheaterDetection::Methods);
|
||||
PushTransparent(!Vars::CheaterDetection::DetectionsRequired.Value);
|
||||
{
|
||||
FSlider(Vars::CheaterDetection::DetectionsRequired);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(!(Vars::CheaterDetection::Methods.Value & Vars::CheaterDetection::MethodsEnum::PacketChoking));
|
||||
{
|
||||
FSlider(Vars::CheaterDetection::MinimumChoking);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(!(Vars::CheaterDetection::Methods.Value & Vars::CheaterDetection::MethodsEnum::AimFlicking));
|
||||
{
|
||||
FSlider(Vars::CheaterDetection::MinimumFlick, FSliderEnum::Left);
|
||||
FSlider(Vars::CheaterDetection::MaximumNoise, FSliderEnum::Right);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
if (Section("Speedhack", 8))
|
||||
{
|
||||
FToggle(Vars::Speedhack::Enabled);
|
||||
PushTransparent(!Vars::Speedhack::Enabled.Value);
|
||||
PushTransparent(Vars::Speedhack::Scale.Value == 1);
|
||||
{
|
||||
FSlider(Vars::Speedhack::Amount);
|
||||
FSlider(Vars::Speedhack::Scale);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
@@ -1389,10 +1367,10 @@ void CMenu::MenuMisc(int iTab)
|
||||
if (Section("Automation"))
|
||||
{
|
||||
FDropdown(Vars::Misc::Automation::AntiBackstab); // pitch/fake _might_ slip up some auto backstabs
|
||||
FToggle(Vars::Misc::Automation::AntiAFK, FToggleEnum::Left);
|
||||
FToggle(Vars::Misc::Automation::AntiAutobalance, FToggleEnum::Right);
|
||||
FToggle(Vars::Misc::Automation::TauntControl, FToggleEnum::Left);
|
||||
FToggle(Vars::Misc::Automation::KartControl, FToggleEnum::Right);
|
||||
FToggle(Vars::Misc::Automation::AntiAutobalance, FToggleEnum::Left);
|
||||
FToggle(Vars::Misc::Automation::AntiAFK, FToggleEnum::Right);
|
||||
FToggle(Vars::Misc::Automation::AutoF2Ignored, FToggleEnum::Left);
|
||||
FToggle(Vars::Misc::Automation::AutoF1Priority, FToggleEnum::Right);
|
||||
FToggle(Vars::Misc::Automation::AcceptItemDrops);
|
||||
@@ -2373,27 +2351,23 @@ void CMenu::MenuLogs(int iTab)
|
||||
FDropdown(Vars::Logging::NotificationPosition);
|
||||
FSlider(Vars::Logging::Lifetime);
|
||||
} EndSection();
|
||||
if (Section("Vote Start"))
|
||||
if (Section("Cheat Detection"))
|
||||
{
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::VoteStart));
|
||||
FDropdown(Vars::CheatDetection::Methods);
|
||||
PushTransparent(!Vars::CheatDetection::DetectionsRequired.Value);
|
||||
{
|
||||
FDropdown(Vars::Logging::VoteStart::LogTo);
|
||||
FSlider(Vars::CheatDetection::DetectionsRequired);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
if (Section("Vote Cast"))
|
||||
{
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::VoteCast));
|
||||
PushTransparent(!(Vars::CheatDetection::Methods.Value & Vars::CheatDetection::MethodsEnum::PacketChoking));
|
||||
{
|
||||
FDropdown(Vars::Logging::VoteCast::LogTo);
|
||||
FSlider(Vars::CheatDetection::MinChoking);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
if (Section("Class Change"))
|
||||
{
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::ClassChanges));
|
||||
PushTransparent(!(Vars::CheatDetection::Methods.Value & Vars::CheatDetection::MethodsEnum::AimFlicking));
|
||||
{
|
||||
FDropdown(Vars::Logging::ClassChange::LogTo);
|
||||
FSlider(Vars::CheatDetection::MinFlick, FSliderEnum::Left);
|
||||
FSlider(Vars::CheatDetection::MaxNoise, FSliderEnum::Right);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
@@ -2401,40 +2375,43 @@ void CMenu::MenuLogs(int iTab)
|
||||
/* Column 2 */
|
||||
TableNextColumn();
|
||||
{
|
||||
if (Section("Damage"))
|
||||
if (Section("Log options"))
|
||||
{
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::VoteStart));
|
||||
{
|
||||
FDropdown(Vars::Logging::VoteStart::LogTo);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::VoteCast));
|
||||
{
|
||||
FDropdown(Vars::Logging::VoteCast::LogTo);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::ClassChanges));
|
||||
{
|
||||
FDropdown(Vars::Logging::ClassChange::LogTo);
|
||||
}
|
||||
PopTransparent();
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::Damage));
|
||||
{
|
||||
FDropdown(Vars::Logging::Damage::LogTo);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
if (Section("Cheat Detection"))
|
||||
{
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::CheatDetection));
|
||||
{
|
||||
FDropdown(Vars::Logging::CheatDetection::LogTo);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
if (Section("Tags"))
|
||||
{
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::Tags));
|
||||
{
|
||||
FDropdown(Vars::Logging::Tags::LogTo);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
if (Section("Aliases"))
|
||||
{
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::Aliases));
|
||||
{
|
||||
FDropdown(Vars::Logging::Aliases::LogTo);
|
||||
}
|
||||
PopTransparent();
|
||||
} EndSection();
|
||||
if (Section("Resolver"))
|
||||
{
|
||||
PushTransparent(!(Vars::Logging::Logs.Value & Vars::Logging::LogsEnum::Resolver));
|
||||
{
|
||||
FDropdown(Vars::Logging::Resolver::LogTo);
|
||||
|
||||
@@ -47,7 +47,7 @@ bool CAntiAim::ShouldRun(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pC
|
||||
|
||||
void CAntiAim::FakeShotAngles(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd)
|
||||
{
|
||||
if (!Vars::AntiAim::InvalidShootPitch.Value || G::Attacking != 1 || G::PrimaryWeaponType != EWeaponType::HITSCAN || pLocal->m_MoveType() != MOVETYPE_WALK)
|
||||
if (!Vars::AntiAim::HidePitchOnShot.Value || G::Attacking != 1 || G::PrimaryWeaponType != EWeaponType::HITSCAN || pLocal->m_MoveType() != MOVETYPE_WALK)
|
||||
return;
|
||||
|
||||
switch (pWeapon ? pWeapon->GetWeaponID() : 0)
|
||||
@@ -149,21 +149,9 @@ float CAntiAim::GetBaseYaw(CTFPlayer* pLocal, CUserCmd* pCmd, bool bFake)
|
||||
return pCmd->viewangles.y;
|
||||
}
|
||||
|
||||
void CAntiAim::RunOverlapping(CTFPlayer* pEntity, CUserCmd* pCmd, float& flYaw, bool bFake, float flEpsilon)
|
||||
{
|
||||
if (!Vars::AntiAim::AntiOverlap.Value || bFake)
|
||||
return;
|
||||
|
||||
float flFakeYaw = GetBaseYaw(pEntity, pCmd, true) + GetYawOffset(pEntity, true);
|
||||
const float flYawDiff = Math::NormalizeAngle(flYaw - flFakeYaw);
|
||||
if (fabsf(flYawDiff) < flEpsilon)
|
||||
flYaw += flYawDiff > 0 ? flEpsilon : -flEpsilon;
|
||||
}
|
||||
|
||||
float CAntiAim::GetYaw(CTFPlayer* pLocal, CUserCmd* pCmd, bool bFake)
|
||||
{
|
||||
float flYaw = GetBaseYaw(pLocal, pCmd, bFake) + GetYawOffset(pLocal, bFake);
|
||||
RunOverlapping(pLocal, pCmd, flYaw, bFake);
|
||||
return flYaw;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ private:
|
||||
void FakeShotAngles(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd);
|
||||
float GetYawOffset(CTFPlayer* pEntity, bool bFake);
|
||||
float GetBaseYaw(CTFPlayer* pLocal, CUserCmd* pCmd, bool bFake);
|
||||
void RunOverlapping(CTFPlayer* pEntity, CUserCmd* pCmd, float& flYaw, bool bFake, float flEpsilon = 45.f);
|
||||
float GetYaw(CTFPlayer* pLocal, CUserCmd* pCmd, bool bFake);
|
||||
float GetPitch(float flCurPitch);
|
||||
void MinWalk(CTFPlayer* pLocal, CUserCmd* pCmd);
|
||||
|
||||
@@ -81,7 +81,7 @@ void CTicks::Doubletap(CTFPlayer* pLocal, CUserCmd* pCmd)
|
||||
|
||||
void CTicks::Speedhack()
|
||||
{
|
||||
m_bSpeedhack = Vars::Speedhack::Enabled.Value;
|
||||
m_bSpeedhack = Vars::Speedhack::Scale.Value != 1;
|
||||
if (!m_bSpeedhack)
|
||||
return;
|
||||
|
||||
@@ -178,7 +178,7 @@ void CTicks::Move(float accumulated_extra_samples, bool bFinalTick)
|
||||
|
||||
if (m_bSpeedhack)
|
||||
{
|
||||
m_iShiftedTicks = Vars::Speedhack::Amount.Value;
|
||||
m_iShiftedTicks = Vars::Speedhack::Scale.Value;
|
||||
m_iShiftedGoal = 0;
|
||||
}
|
||||
|
||||
@@ -415,7 +415,7 @@ void CTicks::Draw(CTFPlayer* pLocal)
|
||||
const auto& fFont = H::Fonts.GetFont(FONT_INDICATORS);
|
||||
|
||||
if (m_bSpeedhack)
|
||||
return H::Draw.StringOutlined(fFont, dtPos.x, dtPos.y + 2, Vars::Menu::Theme::Active.Value, Vars::Menu::Theme::Background.Value, ALIGN_TOP, std::format("Speedhack x{}", Vars::Speedhack::Amount.Value).c_str());
|
||||
return H::Draw.StringOutlined(fFont, dtPos.x, dtPos.y + 2, Vars::Menu::Theme::Active.Value, Vars::Menu::Theme::Background.Value, ALIGN_TOP, std::format("Speedhack x{}", Vars::Speedhack::Scale.Value).c_str());
|
||||
|
||||
int iAntiAimTicks = F::AntiAim.YawOn() ? F::AntiAim.AntiAimTicks() : 0;
|
||||
int iTicks = std::clamp(m_iShiftedTicks + std::max(I::ClientState->chokedcommands - iAntiAimTicks, 0), 0, m_iMaxUsrCmdProcessTicks);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "../Features/Aimbot/Aimbot.h"
|
||||
#include "../Features/Backtrack/Backtrack.h"
|
||||
#include "../Features/Binds/Binds.h"
|
||||
#include "../Features/CheaterDetection/CheaterDetection.h"
|
||||
#include "../Features/CheatDetection/CheatDetection.h"
|
||||
#include "../Features/CritHack/CritHack.h"
|
||||
#include "../Features/Players/PlayerUtils.h"
|
||||
#include "../Features/Simulation/MovementSimulation/MovementSimulation.h"
|
||||
@@ -53,7 +53,7 @@ MAKE_HOOK(CHLClient_FrameStageNotify, U::Memory.GetVirtual(I::Client, 35), void,
|
||||
F::OffscreenArrows.Store();
|
||||
F::Visuals.Store();
|
||||
|
||||
F::CheaterDetection.Run();
|
||||
F::CheatDetection.Run();
|
||||
F::Spectate.NetUpdateEnd(pLocal);
|
||||
|
||||
F::Visuals.Modulate();
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "../Features/Backtrack/Backtrack.h"
|
||||
#include "../Features/Ticks/Ticks.h"
|
||||
#include "../Features/NoSpread/NoSpreadHitscan/NoSpreadHitscan.h"
|
||||
#include "../Features/CheaterDetection/CheaterDetection.h"
|
||||
#include "../Features/CheatDetection/CheatDetection.h"
|
||||
#include "../Features/Resolver/Resolver.h"
|
||||
#include "../Features/Spectate/Spectate.h"
|
||||
|
||||
@@ -20,7 +20,7 @@ MAKE_HOOK(CViewRender_LevelInit, U::Memory.GetVirtual(I::ViewRender, 1), void,
|
||||
F::Backtrack.Reset();
|
||||
F::Ticks.Reset();
|
||||
F::NoSpreadHitscan.Reset();
|
||||
F::CheaterDetection.Reset();
|
||||
F::CheatDetection.Reset();
|
||||
F::Resolver.Reset();
|
||||
F::Spectate.Reset();
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "../../Core/Core.h"
|
||||
#include "../../Features/Aimbot/AutoHeal/AutoHeal.h"
|
||||
#include "../../Features/Backtrack/Backtrack.h"
|
||||
#include "../../Features/CheaterDetection/CheaterDetection.h"
|
||||
#include "../../Features/CheatDetection/CheatDetection.h"
|
||||
#include "../../Features/CritHack/CritHack.h"
|
||||
#include "../../Features/Misc/Misc.h"
|
||||
#include "../../Features/PacketManip/AntiAim/AntiAim.h"
|
||||
@@ -57,7 +57,7 @@ void CEventListener::FireGameEvent(IGameEvent* pEvent)
|
||||
case FNV1A::Hash32Const("player_hurt"):
|
||||
{
|
||||
F::Resolver.PlayerHurt(pEvent);
|
||||
F::CheaterDetection.ReportDamage(pEvent);
|
||||
F::CheatDetection.ReportDamage(pEvent);
|
||||
return;
|
||||
}
|
||||
case FNV1A::Hash32Const("player_spawn"):
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "../../../Utils/Hash/FNV1A.h"
|
||||
#include "../../../Features/Players/PlayerUtils.h"
|
||||
#include "../../../Features/Backtrack/Backtrack.h"
|
||||
#include "../../../Features/CheaterDetection/CheaterDetection.h"
|
||||
#include "../../../Features/CheatDetection/CheatDetection.h"
|
||||
#include "../../../Features/Resolver/Resolver.h"
|
||||
|
||||
void CEntities::Store()
|
||||
@@ -266,7 +266,7 @@ void CEntities::Store()
|
||||
m_aOrigins[n].pop_back();
|
||||
|
||||
if (pPlayer->IsAlive())
|
||||
F::CheaterDetection.ReportChoke(pPlayer, m_aChokes[n]);
|
||||
F::CheatDetection.ReportChoke(pPlayer, m_aChokes[n]);
|
||||
|
||||
m_aOldAngles[n] = m_aEyeAngles[n], m_aEyeAngles[n] = pPlayer->As<CTFPlayer>()->GetEyeAngles();
|
||||
}
|
||||
|
||||
+26
-28
@@ -468,8 +468,7 @@ NAMESPACE_BEGIN(Vars)
|
||||
NAMESPACE_END(AutoPeek)
|
||||
|
||||
NAMESPACE_BEGIN(Speedhack)
|
||||
CVar(Enabled, VA_LIST("Enabled", "Speedhack enabled"), false);
|
||||
CVar(Amount, VA_LIST("Amount", "SpeedHack amount"), 1, NONE, 1, 50);
|
||||
CVar(Scale, VA_LIST("Scale", "SpeedHack scale"), 1, NONE, 1, 50);
|
||||
NAMESPACE_END(Speedhack)
|
||||
|
||||
NAMESPACE_BEGIN(AntiAim, Antiaim)
|
||||
@@ -496,8 +495,7 @@ NAMESPACE_BEGIN(Vars)
|
||||
CVar(FakeYawValue, "Fake value", -90.f, SLIDER_CLAMP | SLIDER_PRECISION, -180.f, 180.f, 5.f);
|
||||
CVar(SpinSpeed, "Spin speed", 15.f, SLIDER_PRECISION, -30.f, 30.f);
|
||||
CVar(MinWalk, "Minwalk", true);
|
||||
CVar(AntiOverlap, "Anti-overlap", false);
|
||||
CVar(InvalidShootPitch, "Hide pitch on shot", false);
|
||||
CVar(HidePitchOnShot, "Hide pitch on shot", false);
|
||||
|
||||
CVar(AntiAimLines, "Antiaim lines", false, NOSAVE);
|
||||
NAMESPACE_END(AntiAim)
|
||||
@@ -515,16 +513,6 @@ NAMESPACE_BEGIN(Vars)
|
||||
CVar(CycleMinwalk, "Cycle minwalk", false);
|
||||
NAMESPACE_END(Resolver)
|
||||
|
||||
NAMESPACE_BEGIN(CheaterDetection, Cheater Detection)
|
||||
CVarEnum(Methods, "Detection methods", 0b0000, DROPDOWN_MULTI, nullptr,
|
||||
VA_LIST("Invalid pitch", "Packet choking", "Aim flicking", "Duck Speed"),
|
||||
InvalidPitch = 1 << 0, PacketChoking = 1 << 1, AimFlicking = 1 << 2, DuckSpeed = 1 << 3);
|
||||
CVar(DetectionsRequired, "Detections required", 10, SLIDER_MIN, 0, 50);
|
||||
CVar(MinimumChoking, "Minimum choking", 20, SLIDER_MIN, 4, 22);
|
||||
CVar(MinimumFlick, "Minimum flick angle", 20.f, SLIDER_PRECISION, 10.f, 30.f); // min flick size to suspect
|
||||
CVar(MaximumNoise, "Maximum flick noise", 1.f, SLIDER_PRECISION, 1.f, 10.f); // max difference between angles before and after flick
|
||||
NAMESPACE_END(CheaterDetection)
|
||||
|
||||
NAMESPACE_BEGIN(ESP)
|
||||
CVarValues(ActiveGroups, "Active groups", int(0b11111111111111111111111111111111), VISUAL | DROPDOWN_MULTI | DROPDOWN_NOSANITIZATION, nullptr);
|
||||
NAMESPACE_END(ESP)
|
||||
@@ -595,8 +583,8 @@ NAMESPACE_BEGIN(Vars)
|
||||
NAMESPACE_END(Tracers)
|
||||
|
||||
NAMESPACE_BEGIN(Viewmodel)
|
||||
CVar(CrosshairAim, "Crosshair aim position", false, VISUAL);
|
||||
CVar(ViewmodelAim, "Viewmodel aim position", false, VISUAL);
|
||||
CVar(CrosshairAim, "Crosshair aim", false, VISUAL);
|
||||
CVar(ViewmodelAim, "Viewmodel aim", false, VISUAL);
|
||||
CVar(OffsetX, VA_LIST("Offset X", "Viewmodel offset X"), 0.f, VISUAL | SLIDER_PRECISION, -45.f, 45.f, 5.f);
|
||||
CVar(OffsetY, VA_LIST("Offset Y", "Viewmodel offset Y"), 0.f, VISUAL | SLIDER_PRECISION, -45.f, 45.f, 5.f);
|
||||
CVar(OffsetZ, VA_LIST("Offset Z", "Viewmodel offset Z"), 0.f, VISUAL | SLIDER_PRECISION, -45.f, 45.f, 5.f);
|
||||
@@ -717,8 +705,8 @@ NAMESPACE_BEGIN(Vars)
|
||||
CVarEnum(AutoStrafe, "Auto strafe", 0, NONE, nullptr,
|
||||
VA_LIST("Off", "Legit", "Directional"),
|
||||
Off, Legit, Directional);
|
||||
CVar(AutoStrafeTurnScale, "Auto strafe turn scale", 0.5f, SLIDER_CLAMP | SLIDER_PRECISION, 0.f, 1.f, 0.1f);
|
||||
CVar(AutoStrafeMaxDelta, "Auto strafe max delta", 180.f, SLIDER_CLAMP | SLIDER_PRECISION, 0.f, 180.f, 5.f);
|
||||
CVar(AutoStrafeTurnScale, VA_LIST("Turn scale", "Auto strafe turn scale"), 0.5f, SLIDER_CLAMP | SLIDER_PRECISION, 0.f, 1.f, 0.1f);
|
||||
CVar(AutoStrafeMaxDelta, VA_LIST("Max delta", "Auto strafe max delta"), 180.f, SLIDER_CLAMP | SLIDER_PRECISION, 0.f, 180.f, 5.f);
|
||||
CVar(Bunnyhop, "Bunnyhop", false);
|
||||
CVar(EdgeJump, "Edge jump", false);
|
||||
CVar(AutoJumpbug, "Auto jumpbug", false);
|
||||
@@ -746,10 +734,10 @@ NAMESPACE_BEGIN(Vars)
|
||||
CVarEnum(AntiBackstab, "Anti-backstab", 0, NONE, nullptr,
|
||||
VA_LIST("Off", "Yaw", "Pitch", "Fake"),
|
||||
Off, Yaw, Pitch, Fake);
|
||||
CVar(AntiAFK, "Anti-AFK", false);
|
||||
CVar(AntiAutobalance, "Anti-autobalance", false);
|
||||
CVar(TauntControl, "Taunt control", false);
|
||||
CVar(KartControl, "Kart control", false);
|
||||
CVar(AntiAutobalance, "Anti-autobalance", false);
|
||||
CVar(AntiAFK, "Anti-AFK", false);
|
||||
CVar(AutoF2Ignored, "Auto F2 ignored", false);
|
||||
CVar(AutoF1Priority, "Auto F1 priority", false);
|
||||
CVar(AcceptItemDrops, "Auto accept item drops", false);
|
||||
@@ -844,46 +832,56 @@ NAMESPACE_BEGIN(Vars)
|
||||
CVar(Lifetime, "Notification time", 5.f, VISUAL, 0.5f, 5.f, 0.5f);
|
||||
|
||||
NAMESPACE_BEGIN(VoteStart, Logging)
|
||||
CVarValues(LogTo, VA_LIST("Log to", "Vote start log to"), 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
CVarValues(LogTo, "Vote start log to", 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
"Toasts", "Chat", "Party", "Console", "Menu", "Debug");
|
||||
NAMESPACE_END(VoteStart)
|
||||
|
||||
NAMESPACE_BEGIN(VoteCast, Logging)
|
||||
CVarValues(LogTo, VA_LIST("Log to", "Vote cast log to"), 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
CVarValues(LogTo, "Vote cast log to", 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
"Toasts", "Chat", "Party", "Console", "Menu", "Debug");
|
||||
NAMESPACE_END(VoteCast)
|
||||
|
||||
NAMESPACE_BEGIN(ClassChange, Logging)
|
||||
CVarValues(LogTo, VA_LIST("Log to", "Class change log to"), 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
CVarValues(LogTo, "Class change log to", 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
"Toasts", "Chat", "Party", "Console", "Menu", "Debug");
|
||||
NAMESPACE_END(ClassChange)
|
||||
|
||||
NAMESPACE_BEGIN(Damage, Logging)
|
||||
CVarValues(LogTo, VA_LIST("Log to", "Damage log to"), 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
CVarValues(LogTo, "Damage log to", 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
"Toasts", "Chat", "Party", "Console", "Menu", "Debug");
|
||||
NAMESPACE_END(Damage)
|
||||
|
||||
NAMESPACE_BEGIN(CheatDetection, Logging)
|
||||
CVarValues(LogTo, VA_LIST("Log to", "Cheat detection log to"), 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
CVarValues(LogTo, "Cheat detection log to", 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
"Toasts", "Chat", "Party", "Console", "Menu", "Debug");
|
||||
NAMESPACE_END(CheatDetection)
|
||||
|
||||
NAMESPACE_BEGIN(Tags, Logging)
|
||||
CVarValues(LogTo, VA_LIST("Log to", "Tags log to"), 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
CVarValues(LogTo, "Tags log to", 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
"Toasts", "Chat", "Party", "Console", "Menu", "Debug");
|
||||
NAMESPACE_END(Tags)
|
||||
|
||||
NAMESPACE_BEGIN(Aliases, Logging)
|
||||
CVarValues(LogTo, VA_LIST("Log to", "Aliases log to"), 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
CVarValues(LogTo, "Aliases log to", 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
"Toasts", "Chat", "Party", "Console", "Menu", "Debug");
|
||||
NAMESPACE_END(Aliases)
|
||||
|
||||
NAMESPACE_BEGIN(Resolver, Logging)
|
||||
CVarValues(LogTo, VA_LIST("Log to", "Resolver log to"), 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
CVarValues(LogTo, "Resolver log to", 0b000001, DROPDOWN_MULTI, nullptr,
|
||||
"Toasts", "Chat", "Party", "Console", "Menu", "Debug");
|
||||
NAMESPACE_END(Resolver)
|
||||
NAMESPACE_END(Logging)
|
||||
|
||||
NAMESPACE_BEGIN(CheatDetection, Cheat Detection)
|
||||
CVarEnum(Methods, "Detection methods", 0b0000, DROPDOWN_MULTI, nullptr,
|
||||
VA_LIST("Invalid pitch", "Packet choking", "Aim flicking", "Duck Speed"),
|
||||
InvalidPitch = 1 << 0, PacketChoking = 1 << 1, AimFlicking = 1 << 2, DuckSpeed = 1 << 3);
|
||||
CVar(DetectionsRequired, "Detections required", 10, SLIDER_MIN, 0, 50);
|
||||
CVar(MinChoking, "Min choking", 20, SLIDER_MIN, 4, 22);
|
||||
CVar(MinFlick, "Min flick angle", 20.f, SLIDER_PRECISION, 10.f, 30.f); // min flick size to suspect
|
||||
CVar(MaxNoise, "Max flick noise", 1.f, SLIDER_PRECISION, 1.f, 10.f); // max difference between angles before and after flick
|
||||
NAMESPACE_END(CheatDetection)
|
||||
|
||||
NAMESPACE_BEGIN(Debug)
|
||||
CVar(Info, "Debug info", false, NOSAVE);
|
||||
CVar(Logging, "Debug logging", false, NOSAVE);
|
||||
|
||||
Reference in New Issue
Block a user