move hvh tab, update readme

This commit is contained in:
rei-2
2025-08-17 11:00:36 -04:00
parent 5e8c17d5ba
commit 8ebe94d46a
14 changed files with 203 additions and 195 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

@@ -853,7 +853,7 @@ void CAimbotHitscan::Run(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pC
} }
if (Vars::Aimbot::Hitscan::Modifiers.Value & Vars::Aimbot::Hitscan::ModifiersEnum::Tapfire && pWeapon->GetWeaponSpread() != 0.f && !pLocal->InCond(TF_COND_RUNE_PRECISION) if (Vars::Aimbot::Hitscan::Modifiers.Value & Vars::Aimbot::Hitscan::ModifiersEnum::Tapfire && pWeapon->GetWeaponSpread() != 0.f && !pLocal->InCond(TF_COND_RUNE_PRECISION)
&& m_vEyePos.DistTo(tTarget.m_vPos) > Vars::Aimbot::Hitscan::TapFireDist.Value) && m_vEyePos.DistTo(tTarget.m_vPos) > Vars::Aimbot::Hitscan::TapfireDistance.Value)
{ {
const float flTimeSinceLastShot = (pLocal->m_nTickBase() * TICK_INTERVAL) - pWeapon->m_flLastFireTime(); const float flTimeSinceLastShot = (pLocal->m_nTickBase() * TICK_INTERVAL) - pWeapon->m_flLastFireTime();
if (flTimeSinceLastShot <= (pWeapon->GetBulletsPerShot() > 1 ? 0.25f : 1.25f)) if (flTimeSinceLastShot <= (pWeapon->GetBulletsPerShot() > 1 ? 0.25f : 1.25f))
+3 -3
View File
@@ -2068,7 +2068,7 @@ namespace ImGui
// str = std::format("{:#x}", key); // str = std::format("{:#x}", key);
return str; return str;
} }
inline void FKeybind(const char* sLabel, int& iOutput, int iFlags = FKeybindEnum::None, std::vector<int> vIgnore = { Vars::Menu::MenuPrimaryKey[DEFAULT_BIND], Vars::Menu::MenuSecondaryKey[DEFAULT_BIND] }, ImVec2 vSize = { 0, 30 }, int iSizeOffset = 0, bool* pHovered = nullptr) inline void FKeybind(const char* sLabel, int& iOutput, int iFlags = FKeybindEnum::None, std::vector<int> vIgnore = { Vars::Menu::PrimaryKey[DEFAULT_BIND], Vars::Menu::SecondaryKey[DEFAULT_BIND] }, ImVec2 vSize = { 0, 30 }, int iSizeOffset = 0, bool* pHovered = nullptr)
{ {
ImGuiID uId = GetID(sLabel); ImGuiID uId = GetID(sLabel);
PushID(sLabel); PushID(sLabel);
@@ -2126,7 +2126,7 @@ namespace ImGui
PopID(); PopID();
} }
inline void FKeybind(ConfigVar<int>& var, int iFlags = FKeybindEnum::None, std::vector<int> vIgnore = { Vars::Menu::MenuPrimaryKey[DEFAULT_BIND], Vars::Menu::MenuSecondaryKey[DEFAULT_BIND] }, ImVec2 vSize = { 0, 30 }, int iSizeOffset = 0, bool* pHovered = nullptr) inline void FKeybind(ConfigVar<int>& var, int iFlags = FKeybindEnum::None, std::vector<int> vIgnore = { Vars::Menu::PrimaryKey[DEFAULT_BIND], Vars::Menu::SecondaryKey[DEFAULT_BIND] }, ImVec2 vSize = { 0, 30 }, int iSizeOffset = 0, bool* pHovered = nullptr)
{ {
FKeybind(var.m_vTitle.front(), var[DEFAULT_BIND], iFlags, vIgnore, vSize, iSizeOffset, pHovered); FKeybind(var.m_vTitle.front(), var[DEFAULT_BIND], iFlags, vIgnore, vSize, iSizeOffset, pHovered);
} }
@@ -2541,7 +2541,7 @@ namespace ImGui
if (tBind.m_iType == BindEnum::Key) if (tBind.m_iType == BindEnum::Key)
{ {
FKeybind("Key", tBind.m_iKey, FKeybindEnum::None, { Vars::Menu::MenuPrimaryKey[DEFAULT_BIND], Vars::Menu::MenuSecondaryKey[DEFAULT_BIND] }, { 0, 30 }, 0, &bHovered); FKeybind("Key", tBind.m_iKey, FKeybindEnum::None, { Vars::Menu::PrimaryKey[DEFAULT_BIND], Vars::Menu::SecondaryKey[DEFAULT_BIND] }, { 0, 30 }, 0, &bHovered);
bLastHovered = bLastHovered || bHovered; bLastHovered = bLastHovered || bHovered;
} }
+169 -164
View File
@@ -73,13 +73,13 @@ void CMenu::DrawMenu()
PushFont(F::Render.FontBold); PushFont(F::Render.FontBold);
FTabs( FTabs(
{ {
{ "AIMBOT", "GENERAL", "HVH", "DRAW" }, { "AIMBOT", "GENERAL", "DRAW" },
{ "VISUALS", "ESP", "MISC##", "MENU" }, { "VISUALS", "ESP", "MISC##", "MENU" },
{ "MISC" }, { "MISC", "MAIN", "HVH" },
{ "LOGS", "PLAYERLIST", "SETTINGS##", "OUTPUT" }, { "LOGS", "PLAYERLIST", "SETTINGS##", "OUTPUT" },
{ "SETTINGS", "CONFIG", "BINDS", "MATERIALS", "EXTRA" } { "SETTINGS", "CONFIG", "BINDS", "MATERIALS", "EXTRA" }
}, },
{ &iTab, &iAimbotTab, &iVisualsTab, nullptr, &iLogsTab, &iSettingsTab }, { &iTab, &iAimbotTab, &iVisualsTab, &iMiscTab, &iLogsTab, &iSettingsTab },
{ H::Draw.Scale(flSideSize - 16), H::Draw.Scale(36) }, { H::Draw.Scale(flSideSize - 16), H::Draw.Scale(36) },
{ H::Draw.Scale(8), H::Draw.Scale(8) + flOffset }, { H::Draw.Scale(8), H::Draw.Scale(8) + flOffset },
FTabsEnum::Vertical | FTabsEnum::HorizontalIcons | FTabsEnum::AlignLeft | FTabsEnum::BarLeft, FTabsEnum::Vertical | FTabsEnum::HorizontalIcons | FTabsEnum::AlignLeft | FTabsEnum::BarLeft,
@@ -225,7 +225,7 @@ void CMenu::MenuAimbot(int iTab)
FSlider(Vars::Aimbot::Hitscan::PointScale); FSlider(Vars::Aimbot::Hitscan::PointScale);
PushTransparent(!(Vars::Aimbot::Hitscan::Modifiers.Value & Vars::Aimbot::Hitscan::ModifiersEnum::Tapfire)); PushTransparent(!(Vars::Aimbot::Hitscan::Modifiers.Value & Vars::Aimbot::Hitscan::ModifiersEnum::Tapfire));
{ {
FSlider(Vars::Aimbot::Hitscan::TapFireDist); FSlider(Vars::Aimbot::Hitscan::TapfireDistance);
} }
PopTransparent(); PopTransparent();
} EndSection(); } EndSection();
@@ -335,153 +335,8 @@ void CMenu::MenuAimbot(int iTab)
} }
break; break;
} }
// HvH
case 1:
{
if (BeginTable("HvHTable", 2))
{
/* Column 1 */
TableNextColumn();
{
if (Section("Doubletap", 8))
{
FToggle(Vars::Doubletap::Doubletap, FToggleEnum::Left);
FToggle(Vars::Doubletap::Warp, FToggleEnum::Right);
FToggle(Vars::Doubletap::RechargeTicks, FToggleEnum::Left);
FToggle(Vars::Doubletap::AntiWarp, FToggleEnum::Right);
FSlider(Vars::Doubletap::TickLimit, FSliderEnum::Left);
FSlider(Vars::Doubletap::WarpRate, FSliderEnum::Right);
FSlider(Vars::Doubletap::RechargeLimit, FSliderEnum::Left);
FSlider(Vars::Doubletap::PassiveRecharge, FSliderEnum::Right);
} EndSection();
if (Section("Fakelag"))
{
FDropdown(Vars::Fakelag::Fakelag, FSliderEnum::Left);
FDropdown(Vars::Fakelag::Options, FDropdownEnum::Right);
PushTransparent(Vars::Fakelag::Fakelag.Value != Vars::Fakelag::FakelagEnum::Plain);
{
FSlider(Vars::Fakelag::PlainTicks, FSliderEnum::Left);
}
PopTransparent();
PushTransparent(Vars::Fakelag::Fakelag.Value != Vars::Fakelag::FakelagEnum::Random);
{
FSlider(Vars::Fakelag::RandomTicks, FSliderEnum::Right);
}
PopTransparent();
FToggle(Vars::Fakelag::UnchokeOnAttack, FToggleEnum::Left);
FToggle(Vars::Fakelag::RetainBlastJump, FToggleEnum::Right);
} EndSection();
if (Vars::Debug::Options.Value)
{
if (Section("##Debug"))
{
FToggle(Vars::Fakelag::RetainSoldierOnly);
} 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::RealYawMode, FDropdownEnum::Left);
FDropdown(Vars::AntiAim::FakeYawMode, 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();
}
/* 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);
{
FSlider(Vars::Speedhack::Amount);
}
PopTransparent();
} EndSection();
}
EndTable();
}
break;
}
// Draw // Draw
case 2: case 1:
{ {
if (BeginTable("DrawTable", 2)) if (BeginTable("DrawTable", 2))
{ {
@@ -1013,7 +868,7 @@ void CMenu::MenuVisuals(int iTab)
/* Column 1 */ /* Column 1 */
TableNextColumn(); TableNextColumn();
{ {
if (Section("Menu", 8)) if (Section("Settings", 8))
{ {
FColorPicker(Vars::Menu::Theme::Accent, FColorPickerEnum::Left); FColorPicker(Vars::Menu::Theme::Accent, FColorPickerEnum::Left);
FColorPicker(Vars::Menu::Theme::Background, FColorPickerEnum::Right); FColorPicker(Vars::Menu::Theme::Background, FColorPickerEnum::Right);
@@ -1022,8 +877,8 @@ void CMenu::MenuVisuals(int iTab)
FSDropdown(Vars::Menu::CheatTitle, FDropdownEnum::Left); FSDropdown(Vars::Menu::CheatTitle, FDropdownEnum::Left);
FSDropdown(Vars::Menu::CheatTag, FDropdownEnum::Right); FSDropdown(Vars::Menu::CheatTag, FDropdownEnum::Right);
FKeybind(Vars::Menu::MenuPrimaryKey, FButtonEnum::Left, { Vars::Menu::MenuSecondaryKey[DEFAULT_BIND], VK_LBUTTON, VK_RBUTTON }); FKeybind(Vars::Menu::PrimaryKey, FButtonEnum::Left, { Vars::Menu::SecondaryKey[DEFAULT_BIND], VK_LBUTTON, VK_RBUTTON });
FKeybind(Vars::Menu::MenuSecondaryKey, FButtonEnum::Right | FButtonEnum::SameLine, { Vars::Menu::MenuPrimaryKey[DEFAULT_BIND], VK_LBUTTON, VK_RBUTTON }); FKeybind(Vars::Menu::SecondaryKey, FButtonEnum::Right | FButtonEnum::SameLine, { Vars::Menu::PrimaryKey[DEFAULT_BIND], VK_LBUTTON, VK_RBUTTON });
} EndSection(); } EndSection();
} }
/* Column 2 */ /* Column 2 */
@@ -1054,6 +909,7 @@ void CMenu::MenuVisuals(int iTab)
} }
EndTable(); EndTable();
} }
break;
} }
} }
} }
@@ -1064,6 +920,7 @@ void CMenu::MenuMisc(int iTab)
switch (iTab) switch (iTab)
{ {
// Main
case 0: case 0:
{ {
if (BeginTable("MiscTable", 2)) if (BeginTable("MiscTable", 2))
@@ -1088,7 +945,7 @@ void CMenu::MenuMisc(int iTab)
FToggle(Vars::Misc::Movement::AutoCTap, FToggleEnum::Right); FToggle(Vars::Misc::Movement::AutoCTap, FToggleEnum::Right);
FToggle(Vars::Misc::Movement::FastStop, FToggleEnum::Left); FToggle(Vars::Misc::Movement::FastStop, FToggleEnum::Left);
FToggle(Vars::Misc::Movement::FastAccelerate, FToggleEnum::Right); FToggle(Vars::Misc::Movement::FastAccelerate, FToggleEnum::Right);
FToggle(Vars::Misc::Movement::CrouchSpeed, FToggleEnum::Left); FToggle(Vars::Misc::Movement::DuckSpeed, FToggleEnum::Left);
FToggle(Vars::Misc::Movement::MovementLock, FToggleEnum::Right); FToggle(Vars::Misc::Movement::MovementLock, FToggleEnum::Right);
FToggle(Vars::Misc::Movement::BreakJump, FToggleEnum::Left); FToggle(Vars::Misc::Movement::BreakJump, FToggleEnum::Left);
FToggle(Vars::Misc::Movement::ShieldTurnRate, FToggleEnum::Right); FToggle(Vars::Misc::Movement::ShieldTurnRate, FToggleEnum::Right);
@@ -1166,6 +1023,152 @@ void CMenu::MenuMisc(int iTab)
} }
EndTable(); EndTable();
} }
break;
}
// HvH
case 1:
{
if (BeginTable("HvHTable", 2))
{
/* Column 1 */
TableNextColumn();
{
if (Section("Doubletap", 8))
{
FToggle(Vars::Doubletap::Doubletap, FToggleEnum::Left);
FToggle(Vars::Doubletap::Warp, FToggleEnum::Right);
FToggle(Vars::Doubletap::RechargeTicks, FToggleEnum::Left);
FToggle(Vars::Doubletap::AntiWarp, FToggleEnum::Right);
FSlider(Vars::Doubletap::TickLimit, FSliderEnum::Left);
FSlider(Vars::Doubletap::WarpRate, FSliderEnum::Right);
FSlider(Vars::Doubletap::RechargeLimit, FSliderEnum::Left);
FSlider(Vars::Doubletap::PassiveRecharge, FSliderEnum::Right);
} EndSection();
if (Section("Fakelag"))
{
FDropdown(Vars::Fakelag::Fakelag, FSliderEnum::Left);
FDropdown(Vars::Fakelag::Options, FDropdownEnum::Right);
PushTransparent(Vars::Fakelag::Fakelag.Value != Vars::Fakelag::FakelagEnum::Plain);
{
FSlider(Vars::Fakelag::PlainTicks, FSliderEnum::Left);
}
PopTransparent();
PushTransparent(Vars::Fakelag::Fakelag.Value != Vars::Fakelag::FakelagEnum::Random);
{
FSlider(Vars::Fakelag::RandomTicks, FSliderEnum::Right);
}
PopTransparent();
FToggle(Vars::Fakelag::UnchokeOnAttack, FToggleEnum::Left);
FToggle(Vars::Fakelag::RetainBlastJump, FToggleEnum::Right);
} EndSection();
if (Vars::Debug::Options.Value)
{
if (Section("##Debug"))
{
FToggle(Vars::Fakelag::RetainSoldierOnly);
} 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();
}
/* 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);
{
FSlider(Vars::Speedhack::Amount);
}
PopTransparent();
} EndSection();
}
EndTable();
}
break;
} }
} }
} }
@@ -2178,6 +2181,7 @@ void CMenu::MenuLogs(int iTab)
} }
} }
} EndSection(); } EndSection();
break;
} }
} }
} }
@@ -2430,7 +2434,7 @@ void CMenu::MenuSettings(int iTab)
tBind.m_bNot = iNot; tBind.m_bNot = iNot;
FDropdown("Visibility", &tBind.m_iVisibility, { "Always", "While active", "Hidden" }, {}, FDropdownEnum::Right); FDropdown("Visibility", &tBind.m_iVisibility, { "Always", "While active", "Hidden" }, {}, FDropdownEnum::Right);
if (tBind.m_iType == 0) if (tBind.m_iType == 0)
FKeybind("Key", tBind.m_iKey, FButtonEnum::None, { Vars::Menu::MenuPrimaryKey[DEFAULT_BIND], Vars::Menu::MenuSecondaryKey[DEFAULT_BIND] }, { 0, 40 }, -96); FKeybind("Key", tBind.m_iKey, FButtonEnum::None, { Vars::Menu::PrimaryKey[DEFAULT_BIND], Vars::Menu::SecondaryKey[DEFAULT_BIND] }, { 0, 40 }, -96);
// create/modify button // create/modify button
bool bCreate = false, bClear = false, bParent = true; bool bCreate = false, bClear = false, bParent = true;
@@ -2841,7 +2845,7 @@ void CMenu::MenuSettings(int iTab)
FToggle(Vars::Debug::VisualizeTraceHits, FToggleEnum::Right); FToggle(Vars::Debug::VisualizeTraceHits, FToggleEnum::Right);
#endif #endif
} EndSection(); } EndSection();
if (Section("Extra")) if (Section("Buttons"))
{ {
if (FButton("cl_fullupdate", FButtonEnum::Left)) if (FButton("cl_fullupdate", FButtonEnum::Left))
I::EngineClient->ClientCmd_Unrestricted("cl_fullupdate"); I::EngineClient->ClientCmd_Unrestricted("cl_fullupdate");
@@ -2955,6 +2959,7 @@ void CMenu::MenuSettings(int iTab)
} }
} EndSection(); } EndSection();
#endif #endif
break;
} }
} }
} }
@@ -3166,14 +3171,14 @@ void CMenu::MenuSearch(std::string sSearch)
std::vector<int> vIgnore; std::vector<int> vIgnore;
switch (FNV1A::Hash32(pVar->m_sName.c_str())) switch (FNV1A::Hash32(pVar->m_sName.c_str()))
{ {
case FNV1A::Hash32Const("Vars::Menu::MenuPrimaryKey"): case FNV1A::Hash32Const("Vars::Menu::PrimaryKey"):
vIgnore = { Vars::Menu::MenuSecondaryKey[DEFAULT_BIND], VK_LBUTTON, VK_RBUTTON }; vIgnore = { Vars::Menu::SecondaryKey[DEFAULT_BIND], VK_LBUTTON, VK_RBUTTON };
break; break;
case FNV1A::Hash32Const("Vars::Menu::MenuSecondaryKey"): case FNV1A::Hash32Const("Vars::Menu::SecondaryKey"):
vIgnore = { Vars::Menu::MenuPrimaryKey[DEFAULT_BIND], VK_LBUTTON, VK_RBUTTON }; vIgnore = { Vars::Menu::PrimaryKey[DEFAULT_BIND], VK_LBUTTON, VK_RBUTTON };
break; break;
default: default:
vIgnore = { Vars::Menu::MenuPrimaryKey[DEFAULT_BIND], Vars::Menu::MenuSecondaryKey[DEFAULT_BIND] }; vIgnore = { Vars::Menu::PrimaryKey[DEFAULT_BIND], Vars::Menu::SecondaryKey[DEFAULT_BIND] };
} }
FKeybind(iOverride != -1 ? pVar->m_vTitle[iOverride] : pVar->m_vTitle.front(), pVar->Map[DEFAULT_BIND], !(i % 2) ? FButtonEnum::Left : FButtonEnum::Right | FButtonEnum::SameLine, vIgnore); FKeybind(iOverride != -1 ? pVar->m_vTitle[iOverride] : pVar->m_vTitle.front(), pVar->Map[DEFAULT_BIND], !(i % 2) ? FButtonEnum::Left : FButtonEnum::Right | FButtonEnum::SameLine, vIgnore);
break; break;
@@ -3527,11 +3532,11 @@ void CMenu::Render()
} }
else else
{ {
U::KeyHandler.StoreKey(Vars::Menu::MenuPrimaryKey.Value); U::KeyHandler.StoreKey(Vars::Menu::PrimaryKey.Value);
U::KeyHandler.StoreKey(Vars::Menu::MenuSecondaryKey.Value); U::KeyHandler.StoreKey(Vars::Menu::SecondaryKey.Value);
U::KeyHandler.StoreKey(VK_F11); U::KeyHandler.StoreKey(VK_F11);
} }
if (U::KeyHandler.Pressed(Vars::Menu::MenuPrimaryKey.Value) || U::KeyHandler.Pressed(Vars::Menu::MenuSecondaryKey.Value)) if (U::KeyHandler.Pressed(Vars::Menu::PrimaryKey.Value) || U::KeyHandler.Pressed(Vars::Menu::SecondaryKey.Value))
I::MatSystemSurface->SetCursorAlwaysVisible(m_bIsOpen = !m_bIsOpen); I::MatSystemSurface->SetCursorAlwaysVisible(m_bIsOpen = !m_bIsOpen);
PushFont(F::Render.FontRegular); PushFont(F::Render.FontRegular);
@@ -14,8 +14,8 @@ void CAutoVote::UserMessage(bf_read& msgData)
if (Vars::Misc::Automation::AutoF2Ignored.Value if (Vars::Misc::Automation::AutoF2Ignored.Value
&& (F::PlayerUtils.IsIgnored(iTarget) && (F::PlayerUtils.IsIgnored(iTarget)
|| Vars::Aimbot::General::Ignore.Value & Vars::Aimbot::General::IgnoreEnum::Friends && H::Entities.IsFriend(iTarget) || /*Vars::Aimbot::General::Ignore.Value & Vars::Aimbot::General::IgnoreEnum::Friends &&*/ H::Entities.IsFriend(iTarget)
|| Vars::Aimbot::General::Ignore.Value & Vars::Aimbot::General::IgnoreEnum::Party && H::Entities.InParty(iTarget))) || /*Vars::Aimbot::General::Ignore.Value & Vars::Aimbot::General::IgnoreEnum::Friends &&*/ H::Entities.InParty(iTarget)))
{ {
I::ClientState->SendStringCmd(std::format("vote {} option2", iVoteID).c_str()); I::ClientState->SendStringCmd(std::format("vote {} option2", iVoteID).c_str());
} }
+1 -1
View File
@@ -320,7 +320,7 @@ void CMisc::FastMovement(CTFPlayer* pLocal, CUserCmd* pCmd)
} }
case 1: case 1:
{ {
if ((pLocal->IsDucking() ? !Vars::Misc::Movement::CrouchSpeed.Value : !Vars::Misc::Movement::FastAccelerate.Value) if ((pLocal->IsDucking() ? !Vars::Misc::Movement::DuckSpeed.Value : !Vars::Misc::Movement::FastAccelerate.Value)
|| Vars::Misc::Game::AntiCheatCompatibility.Value || Vars::Misc::Game::AntiCheatCompatibility.Value
|| G::Attacking == 1 || F::Ticks.m_bDoubletap || F::Ticks.m_bSpeedhack || F::Ticks.m_bRecharge || G::AntiAim || I::GlobalVars->tickcount % 2) || G::Attacking == 1 || F::Ticks.m_bDoubletap || F::Ticks.m_bSpeedhack || F::Ticks.m_bRecharge || G::AntiAim || I::GlobalVars->tickcount % 2)
return; return;
@@ -12,8 +12,8 @@ bool CAntiAim::AntiAimOn()
|| Vars::AntiAim::PitchFake.Value || Vars::AntiAim::PitchFake.Value
|| Vars::AntiAim::YawReal.Value || Vars::AntiAim::YawReal.Value
|| Vars::AntiAim::YawFake.Value || Vars::AntiAim::YawFake.Value
|| Vars::AntiAim::RealYawMode.Value || Vars::AntiAim::RealYawBase.Value
|| Vars::AntiAim::FakeYawMode.Value || Vars::AntiAim::FakeYawBase.Value
|| Vars::AntiAim::RealYawOffset.Value || Vars::AntiAim::RealYawOffset.Value
|| Vars::AntiAim::FakeYawOffset.Value); || Vars::AntiAim::FakeYawOffset.Value);
} }
@@ -23,8 +23,8 @@ bool CAntiAim::YawOn()
return Vars::AntiAim::Enabled.Value return Vars::AntiAim::Enabled.Value
&& (Vars::AntiAim::YawReal.Value && (Vars::AntiAim::YawReal.Value
|| Vars::AntiAim::YawFake.Value || Vars::AntiAim::YawFake.Value
|| Vars::AntiAim::RealYawMode.Value || Vars::AntiAim::RealYawBase.Value
|| Vars::AntiAim::FakeYawMode.Value || Vars::AntiAim::FakeYawBase.Value
|| Vars::AntiAim::RealYawOffset.Value || Vars::AntiAim::RealYawOffset.Value
|| Vars::AntiAim::FakeYawOffset.Value); || Vars::AntiAim::FakeYawOffset.Value);
} }
@@ -119,7 +119,7 @@ float CAntiAim::GetYawOffset(CTFPlayer* pEntity, bool bFake)
float CAntiAim::GetBaseYaw(CTFPlayer* pLocal, CUserCmd* pCmd, bool bFake) float CAntiAim::GetBaseYaw(CTFPlayer* pLocal, CUserCmd* pCmd, bool bFake)
{ {
const int iMode = bFake ? Vars::AntiAim::FakeYawMode.Value : Vars::AntiAim::RealYawMode.Value; const int iMode = bFake ? Vars::AntiAim::FakeYawBase.Value : Vars::AntiAim::RealYawBase.Value;
const float flOffset = bFake ? Vars::AntiAim::FakeYawOffset.Value : Vars::AntiAim::RealYawOffset.Value; const float flOffset = bFake ? Vars::AntiAim::FakeYawOffset.Value : Vars::AntiAim::RealYawOffset.Value;
switch (iMode) // 0 offset, 1 at player switch (iMode) // 0 offset, 1 at player
{ {
+9 -9
View File
@@ -95,16 +95,8 @@ void CResolver::CreateMove(CTFPlayer* pLocal)
bool bAutoYaw = tData.m_bAutoSetYaw && Vars::Resolver::AutoResolveYawAmount.Value; bool bAutoYaw = tData.m_bAutoSetYaw && Vars::Resolver::AutoResolveYawAmount.Value;
bool bAutoPitch = tData.m_bAutoSetPitch && Vars::Resolver::AutoResolvePitchAmount.Value; bool bAutoPitch = tData.m_bAutoSetPitch && Vars::Resolver::AutoResolvePitchAmount.Value;
if (bAutoYaw)
{
flYaw = Math::NormalizeAngle(flYaw + Vars::Resolver::AutoResolveYawAmount.Value);
F::Backtrack.ResolverUpdate(pTarget);
F::Output.ReportResolver(I::EngineClient->GetPlayerForUserID(m_iWaitingForTarget), "Cycling", "yaw", flYaw);
}
if (bAutoPitch if (bAutoPitch
&& (!bAutoYaw || fabsf(flYaw) < fabsf(Vars::Resolver::AutoResolveYawAmount.Value / 2)) && (!bAutoYaw || sign(flYaw) != sign(flYaw + Vars::Resolver::AutoResolveYawAmount.Value))
&& fabsf(pTarget->m_angEyeAnglesX()) == 90.f && !m_mSniperDots.contains(m_iWaitingForTarget)) && fabsf(pTarget->m_angEyeAnglesX()) == 90.f && !m_mSniperDots.contains(m_iWaitingForTarget))
{ {
flPitch = Math::NormalizeAngle(flPitch + Vars::Resolver::AutoResolvePitchAmount.Value, 180.f); flPitch = Math::NormalizeAngle(flPitch + Vars::Resolver::AutoResolvePitchAmount.Value, 180.f);
@@ -113,6 +105,14 @@ void CResolver::CreateMove(CTFPlayer* pLocal)
F::Output.ReportResolver(I::EngineClient->GetPlayerForUserID(m_iWaitingForTarget), "Cycling", "pitch", flPitch); F::Output.ReportResolver(I::EngineClient->GetPlayerForUserID(m_iWaitingForTarget), "Cycling", "pitch", flPitch);
} }
if (bAutoYaw)
{
flYaw = Math::NormalizeAngle(flYaw + Vars::Resolver::AutoResolveYawAmount.Value);
F::Backtrack.ResolverUpdate(pTarget);
F::Output.ReportResolver(I::EngineClient->GetPlayerForUserID(m_iWaitingForTarget), "Cycling", "yaw", flYaw);
}
m_iWaitingForTarget = -1; m_iWaitingForTarget = -1;
m_flWaitingForDamage = 0.f; m_flWaitingForDamage = 0.f;
m_bWaitingForHeadshot = false; m_bWaitingForHeadshot = false;
+7 -7
View File
@@ -172,8 +172,8 @@ namespace Vars
NAMESPACE_BEGIN(Menu) NAMESPACE_BEGIN(Menu)
CVar(CheatTitle, "Cheat title", std::string("Amalgam"), VISUAL | DROPDOWN_AUTOUPDATE); CVar(CheatTitle, "Cheat title", std::string("Amalgam"), VISUAL | DROPDOWN_AUTOUPDATE);
CVar(CheatTag, "Cheat tag", std::string("[Amalgam]"), VISUAL); CVar(CheatTag, "Cheat tag", std::string("[Amalgam]"), VISUAL);
CVar(MenuPrimaryKey, "Primary key", VK_INSERT, NOBIND); CVar(PrimaryKey, "Primary key", VK_INSERT, NOBIND);
CVar(MenuSecondaryKey, "Secondary key", VK_F3, NOBIND); CVar(SecondaryKey, "Secondary key", VK_F3, NOBIND);
CVar(BindWindow, "Bind window", true); CVar(BindWindow, "Bind window", true);
CVar(BindWindowTitle, "Bind window title", true); CVar(BindWindowTitle, "Bind window title", true);
@@ -264,7 +264,7 @@ namespace Vars
CVarEnum(Target, "Target", 0b0000001, DROPDOWN_MULTI, nullptr, CVarEnum(Target, "Target", 0b0000001, DROPDOWN_MULTI, nullptr,
VA_LIST("Players", "Sentries", "Dispensers", "Teleporters", "Stickies", "NPCs", "Bombs"), VA_LIST("Players", "Sentries", "Dispensers", "Teleporters", "Stickies", "NPCs", "Bombs"),
Players = 1 << 0, Sentry = 1 << 1, Dispenser = 1 << 2, Teleporter = 1 << 3, Stickies = 1 << 4, NPCs = 1 << 5, Bombs = 1 << 6); Players = 1 << 0, Sentry = 1 << 1, Dispenser = 1 << 2, Teleporter = 1 << 3, Stickies = 1 << 4, NPCs = 1 << 5, Bombs = 1 << 6);
CVarEnum(Ignore, "Ignore", 0b000000000, DROPDOWN_MULTI, nullptr, CVarEnum(Ignore, "Ignore", 0b00000001000, DROPDOWN_MULTI, nullptr,
VA_LIST("Friends", "Party", "Unprioritized", "Invulnerable", "Invisible", "Unsimulated", "Dead ringer", "Vaccinator", "Disguised", "Taunting", "Team"), VA_LIST("Friends", "Party", "Unprioritized", "Invulnerable", "Invisible", "Unsimulated", "Dead ringer", "Vaccinator", "Disguised", "Taunting", "Team"),
Friends = 1 << 0, Party = 1 << 1, Unprioritized = 1 << 2, Invulnerable = 1 << 3, Invisible = 1 << 4, Unsimulated = 1 << 5, DeadRinger = 1 << 6, Vaccinator = 1 << 7, Disguised = 1 << 8, Taunting = 1 << 9, Team = 1 << 10); Friends = 1 << 0, Party = 1 << 1, Unprioritized = 1 << 2, Invulnerable = 1 << 3, Invisible = 1 << 4, Unsimulated = 1 << 5, DeadRinger = 1 << 6, Vaccinator = 1 << 7, Disguised = 1 << 8, Taunting = 1 << 9, Team = 1 << 10);
CVar(AimFOV, "Aim FOV", 30.f, SLIDER_CLAMP | SLIDER_PRECISION, 0.f, 180.f); CVar(AimFOV, "Aim FOV", 30.f, SLIDER_CLAMP | SLIDER_PRECISION, 0.f, 180.f);
@@ -295,7 +295,7 @@ namespace Vars
VA_LIST("Tapfire", "Wait for headshot", "Wait for charge", "Scoped only", "Auto scope", "Auto rev minigun", "Extinguish team"), VA_LIST("Tapfire", "Wait for headshot", "Wait for charge", "Scoped only", "Auto scope", "Auto rev minigun", "Extinguish team"),
Tapfire = 1 << 0, WaitForHeadshot = 1 << 1, WaitForCharge = 1 << 2, ScopedOnly = 1 << 3, AutoScope = 1 << 4, AutoRev = 1 << 5, ExtinguishTeam = 1 << 6); Tapfire = 1 << 0, WaitForHeadshot = 1 << 1, WaitForCharge = 1 << 2, ScopedOnly = 1 << 3, AutoScope = 1 << 4, AutoRev = 1 << 5, ExtinguishTeam = 1 << 6);
CVar(PointScale, "Point scale", 0.f, SLIDER_CLAMP | SLIDER_PRECISION, 0.f, 100.f, 5.f, "%g%%"); CVar(PointScale, "Point scale", 0.f, SLIDER_CLAMP | SLIDER_PRECISION, 0.f, 100.f, 5.f, "%g%%");
CVar(TapFireDist, "Tapfire distance", 1000.f, SLIDER_MIN | SLIDER_PRECISION, 250.f, 1000.f, 50.f); CVar(TapfireDistance, "Tapfire distance", 1000.f, SLIDER_MIN | SLIDER_PRECISION, 250.f, 1000.f, 50.f);
CVar(BoneSizeSubtract, "Bone size subtract", 1.f, NOSAVE | DEBUGVAR | SLIDER_MIN, 0.f, 4.f, 0.25f); CVar(BoneSizeSubtract, "Bone size subtract", 1.f, NOSAVE | DEBUGVAR | SLIDER_MIN, 0.f, 4.f, 0.25f);
CVar(BoneSizeMinimumScale, "Bone size minimum scale", 1.f, NOSAVE | DEBUGVAR | SLIDER_CLAMP, 0.f, 1.f, 0.1f); CVar(BoneSizeMinimumScale, "Bone size minimum scale", 1.f, NOSAVE | DEBUGVAR | SLIDER_CLAMP, 0.f, 1.f, 0.1f);
@@ -470,9 +470,9 @@ namespace Vars
CVarValues(YawFake, "Fake yaw", 0, NONE, nullptr, CVarValues(YawFake, "Fake yaw", 0, NONE, nullptr,
"Forward", "Left", "Right", "Backwards", "Edge", "Jitter", "Spin"); "Forward", "Left", "Right", "Backwards", "Edge", "Jitter", "Spin");
Enum(YawMode, View, Target); Enum(YawMode, View, Target);
CVarValues(RealYawMode, "Real offset", 0, NONE, nullptr, CVarValues(RealYawBase, "Real base", 0, NONE, nullptr,
"View", "Target"); "View", "Target");
CVarValues(FakeYawMode, "Fake offset", 0, NONE, nullptr, CVarValues(FakeYawBase, "Fake base", 0, NONE, nullptr,
"View", "Target"); "View", "Target");
CVar(RealYawOffset, "Real offset", 0.f, SLIDER_CLAMP | SLIDER_PRECISION, -180.f, 180.f, 5.f); CVar(RealYawOffset, "Real offset", 0.f, SLIDER_CLAMP | SLIDER_PRECISION, -180.f, 180.f, 5.f);
CVar(FakeYawOffset, "Fake offset", 0.f, SLIDER_CLAMP | SLIDER_PRECISION, -180.f, 180.f, 5.f); CVar(FakeYawOffset, "Fake offset", 0.f, SLIDER_CLAMP | SLIDER_PRECISION, -180.f, 180.f, 5.f);
@@ -699,7 +699,7 @@ namespace Vars
CVar(AutoCTap, "Auto ctap", false); CVar(AutoCTap, "Auto ctap", false);
CVar(FastStop, "Fast stop", false); CVar(FastStop, "Fast stop", false);
CVar(FastAccelerate, "Fast accelerate", false); CVar(FastAccelerate, "Fast accelerate", false);
CVar(CrouchSpeed, "Crouch speed", false); CVar(DuckSpeed, "Duck speed", false);
CVar(MovementLock, "Movement lock", false); CVar(MovementLock, "Movement lock", false);
CVar(BreakJump, "Break jump", false); CVar(BreakJump, "Break jump", false);
CVar(ShieldTurnRate, "Shield turn rate", false); CVar(ShieldTurnRate, "Shield turn rate", false);
+6 -3
View File
@@ -17,11 +17,14 @@
[![Freetype AVX2](.github/assets/freetype_avx2.png)](https://nightly.link/rei-2/Amalgam/workflows/msbuild/master/Amalgamx64ReleaseFreetypeAVX2.zip) [![Freetype AVX2](.github/assets/freetype_avx2.png)](https://nightly.link/rei-2/Amalgam/workflows/msbuild/master/Amalgamx64ReleaseFreetypeAVX2.zip)
[![PDB Freetype AVX2](.github/assets/pdb2.png)](https://nightly.link/rei-2/Amalgam/workflows/msbuild/master/Amalgamx64ReleaseFreetypeAVX2PDB.zip) [![PDB Freetype AVX2](.github/assets/pdb2.png)](https://nightly.link/rei-2/Amalgam/workflows/msbuild/master/Amalgamx64ReleaseFreetypeAVX2PDB.zip)
###### AVX2 may be faster than SSE2 though not all CPUs support it (`Steam > Help > System Information > Processor Information > AVX2`). Freetype uses freetype as the text rasterizer and includes some custom fonts, which results in better looking text but larger DLL sizes. PDBs are for developer use. <sub>AVX2 may be faster than SSE2 though not all CPUs support it (`Steam > Help > System Information > Processor Information > AVX2`). Freetype uses freetype as the text rasterizer and includes some custom fonts, which results in better looking text but larger DLL sizes. PDBs are for developer use. </sub>
###### If nightly.link is down or can't be accessed, you can still download through [GitHub](https://github.com/rei-2/Amalgam/actions) with an account. <br><br>
<sub>If nightly.link is down or can't be accessed, you can still download through [GitHub](https://github.com/rei-2/Amalgam/actions) with an account. </sub>
</div> </div>
# #
[VAC bypass](https://github.com/danielkrupinski/VAC-Bypass-Loader) and [Xenos](https://github.com/DarthTon/Xenos/releases) recommended. [VAC bypass](https://github.com/danielkrupinski/VAC-Bypass-Loader) and [Xenos](https://github.com/DarthTon/Xenos/releases) recommended.
Read about Amalgam's documentation and features [here](../../wiki).