diff --git a/Amalgam/src/Features/Aimbot/AimbotGlobal/AimbotGlobal.cpp b/Amalgam/src/Features/Aimbot/AimbotGlobal/AimbotGlobal.cpp index e004225b..4c3d6ca8 100644 --- a/Amalgam/src/Features/Aimbot/AimbotGlobal/AimbotGlobal.cpp +++ b/Amalgam/src/Features/Aimbot/AimbotGlobal/AimbotGlobal.cpp @@ -196,15 +196,14 @@ bool CAimbotGlobal::ShouldIgnore(CBaseEntity* pEntity, CTFPlayer* pLocal, CTFWea case ETFClassID::CObjectTeleporter: { auto pBuilding = pEntity->As(); + if (pLocal->m_iTeamNum() == pBuilding->m_iTeamNum()) + return false; if (!(Vars::Aimbot::General::Target.Value & Vars::Aimbot::General::TargetEnum::Sentry) && pBuilding->IsSentrygun() || !(Vars::Aimbot::General::Target.Value & Vars::Aimbot::General::TargetEnum::Dispenser) && pBuilding->IsDispenser() || !(Vars::Aimbot::General::Target.Value & Vars::Aimbot::General::TargetEnum::Teleporter) && pBuilding->IsTeleporter()) return true; - if (pLocal->m_iTeamNum() == pEntity->m_iTeamNum()) - return false; - auto pOwner = pBuilding->m_hBuilder().Get(); if (pOwner) { diff --git a/Amalgam/src/Features/Aimbot/AimbotHitscan/AimbotHitscan.cpp b/Amalgam/src/Features/Aimbot/AimbotHitscan/AimbotHitscan.cpp index b6fe58c5..113e65d0 100644 --- a/Amalgam/src/Features/Aimbot/AimbotHitscan/AimbotHitscan.cpp +++ b/Amalgam/src/Features/Aimbot/AimbotHitscan/AimbotHitscan.cpp @@ -60,9 +60,9 @@ std::vector CAimbotHitscan::GetTargets(CTFPlayer* pLocal, CTFWeaponBas switch (Vars::Aimbot::Healing::HealPriority.Value) { case Vars::Aimbot::Healing::HealPriorityEnum::PrioritizeFriends: - if (!H::Entities.IsFriend(pEntity->entindex()) && !H::Entities.InParty(pEntity->entindex())) - break; - [[fallthrough]]; + if (H::Entities.IsFriend(pEntity->entindex()) || H::Entities.InParty(pEntity->entindex())) + iPriority = std::numeric_limits::max(); + break; case Vars::Aimbot::Healing::HealPriorityEnum::PrioritizeTeam: iPriority = std::numeric_limits::max(); } @@ -76,7 +76,7 @@ std::vector CAimbotHitscan::GetTargets(CTFPlayer* pLocal, CTFWeaponBas return vTargets; } - if (Vars::Aimbot::General::Target.Value) + if (Vars::Aimbot::General::Target.Value & Vars::Aimbot::General::TargetEnum::Building) { for (auto pEntity : H::Entities.GetGroup(EGroupType::BUILDINGS_ENEMIES)) { diff --git a/Amalgam/src/Features/Aimbot/AimbotMelee/AimbotMelee.cpp b/Amalgam/src/Features/Aimbot/AimbotMelee/AimbotMelee.cpp index d187454a..bd7a0ece 100644 --- a/Amalgam/src/Features/Aimbot/AimbotMelee/AimbotMelee.cpp +++ b/Amalgam/src/Features/Aimbot/AimbotMelee/AimbotMelee.cpp @@ -14,14 +14,10 @@ std::vector CAimbotMelee::GetTargets(CTFPlayer* pLocal, CTFWeaponBase* if (Vars::Aimbot::General::Target.Value & Vars::Aimbot::General::TargetEnum::Players) { - auto eGroupType = EGroupType::GROUP_INVALID; - if (Vars::Aimbot::General::Target.Value & Vars::Aimbot::General::TargetEnum::Players) - { - eGroupType = !F::AimbotGlobal.FriendlyFire() || Vars::Aimbot::General::Ignore.Value & Vars::Aimbot::General::IgnoreEnum::Team ? EGroupType::PLAYERS_ENEMIES : EGroupType::PLAYERS_ALL; - if (Vars::Aimbot::Melee::WhipTeam.Value && - !F::AimbotGlobal.FriendlyFire() && SDK::AttribHookValue(0, "speed_buff_ally", pWeapon) > 0) - eGroupType = EGroupType::PLAYERS_ALL; - } + auto eGroupType = !F::AimbotGlobal.FriendlyFire() || Vars::Aimbot::General::Ignore.Value & Vars::Aimbot::General::IgnoreEnum::Team ? EGroupType::PLAYERS_ENEMIES : EGroupType::PLAYERS_ALL; + if (Vars::Aimbot::Melee::WhipTeam.Value && + !F::AimbotGlobal.FriendlyFire() && SDK::AttribHookValue(0, "speed_buff_ally", pWeapon) > 0) + eGroupType = EGroupType::PLAYERS_ALL; for (auto pEntity : H::Entities.GetGroup(eGroupType)) { @@ -42,18 +38,20 @@ std::vector CAimbotMelee::GetTargets(CTFPlayer* pLocal, CTFWeaponBase* } } - if (Vars::Aimbot::General::Target.Value) { - bool bWrench = pWeapon->GetWeaponID() == TF_WEAPON_WRENCH; - bool bDestroySapper = pWeapon->GetWeaponID() == TF_WEAPON_FIREAXE && SDK::AttribHookValue(0, "set_dmg_apply_to_sapper", pWeapon); - - for (auto pEntity : H::Entities.GetGroup(bWrench || bDestroySapper ? EGroupType::BUILDINGS_ALL : EGroupType::BUILDINGS_ENEMIES)) + auto eGroupType = EGroupType::GROUP_INVALID; + if (Vars::Aimbot::General::Target.Value & Vars::Aimbot::General::TargetEnum::Building) + eGroupType = EGroupType::BUILDINGS_ENEMIES; + bool bWrench = pWeapon->GetWeaponID() == TF_WEAPON_WRENCH, bSapper = SDK::AttribHookValue(0, "set_dmg_apply_to_sapper", pWeapon); + if (Vars::Aimbot::Healing::AutoRepair.Value && (bWrench || bSapper)) + eGroupType = eGroupType != EGroupType::GROUP_INVALID ? EGroupType::BUILDINGS_ALL : EGroupType::BUILDINGS_TEAMMATES; + for (auto pEntity : H::Entities.GetGroup(eGroupType)) { if (F::AimbotGlobal.ShouldIgnore(pEntity, pLocal, pWeapon)) continue; bool bTeam = pEntity->m_iTeamNum() == pLocal->m_iTeamNum(); - if (bTeam && (bWrench && !AimFriendlyBuilding(pEntity->As()) || bDestroySapper && !pEntity->As()->m_bHasSapper())) + if (bTeam && (bWrench && !AimFriendlyBuilding(pEntity->As()) || bSapper && !pEntity->As()->m_bHasSapper())) continue; Vec3 vPos = pEntity->GetCenter(); @@ -62,8 +60,23 @@ std::vector CAimbotMelee::GetTargets(CTFPlayer* pLocal, CTFWeaponBase* if (flFOVTo > Vars::Aimbot::General::AimFOV.Value) continue; + int iPriority = 0; + if (bTeam) + { + int iOwner = pEntity->As()->m_hBuilder().GetEntryIndex(); + switch (Vars::Aimbot::Healing::HealPriority.Value) + { + case Vars::Aimbot::Healing::HealPriorityEnum::PrioritizeFriends: + if (iOwner == I::EngineClient->GetLocalPlayer() || H::Entities.IsFriend(iOwner) || H::Entities.InParty(iOwner)) + iPriority = std::numeric_limits::max(); + break; + case Vars::Aimbot::Healing::HealPriorityEnum::PrioritizeTeam: + iPriority = std::numeric_limits::max(); + } + } + float flDistTo = vLocalPos.DistTo(vPos); - vTargets.emplace_back(pEntity, pEntity->IsSentrygun() ? TargetEnum::Sentry : pEntity->IsDispenser() ? TargetEnum::Dispenser : TargetEnum::Teleporter, vPos, vAngleTo, flFOVTo, flDistTo); + vTargets.emplace_back(pEntity, pEntity->IsSentrygun() ? TargetEnum::Sentry : pEntity->IsDispenser() ? TargetEnum::Dispenser : TargetEnum::Teleporter, vPos, vAngleTo, flFOVTo, flDistTo, iPriority); } } @@ -291,6 +304,11 @@ int CAimbotMelee::CanHit(Target_t& tTarget, CTFPlayer* pLocal, CTFWeaponBase* pW flRange *= pLocal->m_flModelScale(); flHull *= pLocal->m_flModelScale(); } + if (pWeapon->GetWeaponID() == TF_WEAPON_WRENCH && tTarget.m_pEntity->m_iTeamNum() == pLocal->m_iTeamNum()) + { + flRange = 70; + flHull = 18; + } Vec3 vSwingMins = { -flHull, -flHull, -flHull }; Vec3 vSwingMaxs = { flHull, flHull, flHull }; auto& vSimRecords = m_mRecordMap[tTarget.m_pEntity->entindex()]; diff --git a/Amalgam/src/Features/Aimbot/AimbotProjectile/AimbotProjectile.cpp b/Amalgam/src/Features/Aimbot/AimbotProjectile/AimbotProjectile.cpp index 6c7af84b..b94d63f6 100644 --- a/Amalgam/src/Features/Aimbot/AimbotProjectile/AimbotProjectile.cpp +++ b/Amalgam/src/Features/Aimbot/AimbotProjectile/AimbotProjectile.cpp @@ -27,16 +27,19 @@ std::vector CAimbotProjectile::GetTargets(CTFPlayer* pLocal, CTFWeapon const Vec3 vLocalAngles = I::EngineClient->GetViewAngles(); { - EGroupType eGroupType = EGroupType::GROUP_INVALID; + auto eGroupType = EGroupType::GROUP_INVALID; if (Vars::Aimbot::General::Target.Value & Vars::Aimbot::General::TargetEnum::Players) eGroupType = !F::AimbotGlobal.FriendlyFire() || Vars::Aimbot::General::Ignore.Value & Vars::Aimbot::General::IgnoreEnum::Team ? EGroupType::PLAYERS_ENEMIES : EGroupType::PLAYERS_ALL; - if (Vars::Aimbot::Healing::AutoArrow.Value) + switch (pWeapon->GetWeaponID()) { - switch (pWeapon->GetWeaponID()) - { - case TF_WEAPON_CROSSBOW: eGroupType = eGroupType != EGroupType::GROUP_INVALID ? EGroupType::PLAYERS_ALL : EGroupType::PLAYERS_TEAMMATES; break; - case TF_WEAPON_LUNCHBOX: eGroupType = EGroupType::PLAYERS_TEAMMATES; break; - } + case TF_WEAPON_CROSSBOW: + if (Vars::Aimbot::Healing::AutoArrow.Value) + eGroupType = eGroupType != EGroupType::GROUP_INVALID ? EGroupType::PLAYERS_ALL : EGroupType::PLAYERS_TEAMMATES; + break; + case TF_WEAPON_LUNCHBOX: + if (Vars::Aimbot::Healing::AutoSandvich.Value) + eGroupType = EGroupType::PLAYERS_TEAMMATES; + break; } bool bHeal = pWeapon->GetWeaponID() == TF_WEAPON_CROSSBOW || pWeapon->GetWeaponID() == TF_WEAPON_LUNCHBOX; @@ -64,9 +67,9 @@ std::vector CAimbotProjectile::GetTargets(CTFPlayer* pLocal, CTFWeapon switch (Vars::Aimbot::Healing::HealPriority.Value) { case Vars::Aimbot::Healing::HealPriorityEnum::PrioritizeFriends: - if (!H::Entities.IsFriend(pEntity->entindex()) && !H::Entities.InParty(pEntity->entindex())) - break; - [[fallthrough]]; + if (H::Entities.IsFriend(pEntity->entindex()) || H::Entities.InParty(pEntity->entindex())) + iPriority = std::numeric_limits::max(); + break; case Vars::Aimbot::Healing::HealPriorityEnum::PrioritizeTeam: iPriority = std::numeric_limits::max(); } @@ -80,16 +83,19 @@ std::vector CAimbotProjectile::GetTargets(CTFPlayer* pLocal, CTFWeapon return vTargets; } - if (Vars::Aimbot::General::Target.Value) { - bool bIsRescueRanger = pWeapon->GetWeaponID() == TF_WEAPON_SHOTGUN_BUILDING_RESCUE; - for (auto pEntity : H::Entities.GetGroup(bIsRescueRanger ? EGroupType::BUILDINGS_ALL : EGroupType::BUILDINGS_ENEMIES)) + auto eGroupType = EGroupType::GROUP_INVALID; + if (Vars::Aimbot::General::Target.Value & Vars::Aimbot::General::TargetEnum::Building) + eGroupType = EGroupType::BUILDINGS_ENEMIES; + if (Vars::Aimbot::Healing::AutoRepair.Value && pWeapon->GetWeaponID() == TF_WEAPON_SHOTGUN_BUILDING_RESCUE) + eGroupType = eGroupType != EGroupType::GROUP_INVALID ? EGroupType::BUILDINGS_ALL : EGroupType::BUILDINGS_TEAMMATES; + for (auto pEntity : H::Entities.GetGroup(eGroupType)) { if (F::AimbotGlobal.ShouldIgnore(pEntity, pLocal, pWeapon)) continue; bool bTeam = pEntity->m_iTeamNum() == pLocal->m_iTeamNum(); - if (bTeam && pEntity->As()->m_iHealth() >= pEntity->As()->m_iMaxHealth()) + if (bTeam && (pEntity->As()->m_iHealth() >= pEntity->As()->m_iMaxHealth() || pEntity->As()->m_bBuilding())) continue; Vec3 vPos = pEntity->GetCenter(); @@ -98,8 +104,23 @@ std::vector CAimbotProjectile::GetTargets(CTFPlayer* pLocal, CTFWeapon if (flFOVTo > Vars::Aimbot::General::AimFOV.Value) continue; + int iPriority = 0; + if (bTeam) + { + int iOwner = pEntity->As()->m_hBuilder().GetEntryIndex(); + switch (Vars::Aimbot::Healing::HealPriority.Value) + { + case Vars::Aimbot::Healing::HealPriorityEnum::PrioritizeFriends: + if (iOwner == I::EngineClient->GetLocalPlayer() || H::Entities.IsFriend(iOwner) || H::Entities.InParty(iOwner)) + iPriority = std::numeric_limits::max(); + break; + case Vars::Aimbot::Healing::HealPriorityEnum::PrioritizeTeam: + iPriority = std::numeric_limits::max(); + } + } + float flDistTo = iSort == Vars::Aimbot::General::TargetSelectionEnum::Distance ? vLocalPos.DistTo(vPos) : 0.f; - vTargets.emplace_back(pEntity, pEntity->IsSentrygun() ? TargetEnum::Sentry : pEntity->IsDispenser() ? TargetEnum::Dispenser : TargetEnum::Teleporter, vPos, vAngleTo, flFOVTo, flDistTo); + vTargets.emplace_back(pEntity, pEntity->IsSentrygun() ? TargetEnum::Sentry : pEntity->IsDispenser() ? TargetEnum::Dispenser : TargetEnum::Teleporter, vPos, vAngleTo, flFOVTo, flDistTo, iPriority); } } @@ -381,8 +402,7 @@ std::unordered_map CAimbotProjectile::GetDirectPoints(Target_t& tTarg return mPoints; } -// seode -static inline std::vector> ComputeSphere(float flRadius, int iSamples, float flNthroot) +static inline std::vector> ComputeSphere(float flRadius, int iSamples) { std::vector> vPoints; vPoints.reserve(iSamples); @@ -393,24 +413,22 @@ static inline std::vector> ComputeSphere(float flRadius, in int iPointType = Vars::Aimbot::Projectile::SplashGrates.Value ? PointTypeEnum::Regular | PointTypeEnum::Obscured : PointTypeEnum::Regular; if (Vars::Aimbot::Projectile::RocketSplashMode.Value == Vars::Aimbot::Projectile::RocketSplashModeEnum::SpecialHeavy) iPointType |= PointTypeEnum::ObscuredExtra | PointTypeEnum::ObscuredMulti; + + float a = PI * (3.f - sqrtf(5.f)); for (int n = 0; n < iSamples; n++) { - float flA = acosf(1.f - 2.f * n / iSamples); - float flB = PI * (3.f - sqrtf(5.f)) * n; + float t = a * n; + float y = 1 - (n / (iSamples - 1.f)) * 2; + float r = sqrtf(1 - powf(y, 2)); + float x = cosf(t) * r; + float z = sinf(t) * r; - Vec3 vPoint = Vec3(sinf(flA) * cosf(flB), sinf(flA) * sinf(flB), -cosf(flA)); + Vec3 vPoint = Vec3(x, y, z) * flRadius; vPoint = Math::RotatePoint(vPoint, {}, { flRotateX, flRotateY }); - if (flNthroot != 1.f) - { - vPoint.x = powf(fabsf(vPoint.x), 1 / flNthroot) * sign(vPoint.x); - vPoint.y = powf(fabsf(vPoint.y), 1 / flNthroot) * sign(vPoint.y); - vPoint.z = powf(fabsf(vPoint.z), 1 / flNthroot) * sign(vPoint.z); - vPoint.Normalize(); - } - vPoint *= flRadius; vPoints.emplace_back(vPoint, iPointType); } + vPoints.emplace_back(Vec3(0.f, 0.f, -1.f) * flRadius, iPointType); return vPoints; }; @@ -1383,10 +1401,10 @@ int CAimbotProjectile::CanHit(Target_t& tTarget, CTFPlayer* pLocal, CTFWeaponBas int iMulti = Vars::Aimbot::Projectile::SplashMode.Value; auto mDirectPoints = iSplash == Vars::Aimbot::Projectile::SplashPredictionEnum::Only ? std::unordered_map() : GetDirectPoints(tTarget); - auto vSpherePoints = !iSplash ? std::vector>() : ComputeSphere(m_tInfo.m_flRadius + flSize, Vars::Aimbot::Projectile::SplashPoints.Value, Vars::Aimbot::Projectile::SplashNthRoot.Value); + auto vSpherePoints = !iSplash ? std::vector>() : ComputeSphere(m_tInfo.m_flRadius + flSize, Vars::Aimbot::Projectile::SplashPoints.Value); #ifdef SPLASH_DEBUG4 for (auto& [vPoint, _] : vSpherePoints) - G::BoxStorage.emplace_back(tTarget.m_pEntity->m_vecOrigin() + m_tInfo.m_vTargetEye + vPoint * m_tInfo.m_flRadius / (m_tInfo.m_flRadius + flSize), Vec3(-1, -1, -1), Vec3(1, 1, 1), Vec3(), I::GlobalVars->curtime + 60.f, Color_t(0, 0, 0, 0), Vars::Colors::Local.Value); + G::BoxStorage.emplace_back(tTarget.m_pEntity->m_vecOrigin() + m_tInfo.m_vTargetEye + vPoint, Vec3(-1, -1, -1), Vec3(1, 1, 1), Vec3(), I::GlobalVars->curtime + 60.f, Color_t(0, 0, 0, 0), Vars::Colors::Local.Value); #endif Vec3 vAngleTo, vPredicted, vTarget; @@ -2073,7 +2091,7 @@ bool CAimbotProjectile::CanHit(Target_t& tTarget, CTFPlayer* pLocal, CTFWeaponBa int iMulti = Vars::Aimbot::Projectile::SplashMode.Value; auto mDirectPoints = iSplash == Vars::Aimbot::Projectile::SplashPredictionEnum::Only ? std::unordered_map() : GetDirectPoints(tTarget, pProjectile); - auto vSpherePoints = !iSplash ? std::vector>() : ComputeSphere(m_tInfo.m_flRadius + flSize, Vars::Aimbot::Projectile::SplashPoints.Value, Vars::Aimbot::Projectile::SplashNthRoot.Value); + auto vSpherePoints = !iSplash ? std::vector>() : ComputeSphere(m_tInfo.m_flRadius + flSize, Vars::Aimbot::Projectile::SplashPoints.Value); Vec3 vAngleTo, vPredicted, vTarget; int iLowestPriority = std::numeric_limits::max(); float flLowestDist = std::numeric_limits::max(); diff --git a/Amalgam/src/Features/CritHack/CritHack.cpp b/Amalgam/src/Features/CritHack/CritHack.cpp index 285e6068..559001bf 100644 --- a/Amalgam/src/Features/CritHack/CritHack.cpp +++ b/Amalgam/src/Features/CritHack/CritHack.cpp @@ -299,7 +299,15 @@ void CCritHack::Reset() int CCritHack::GetCritRequest(CUserCmd* pCmd, CTFWeaponBase* pWeapon) { bool bCanCrit = m_iAvailableCrits > 0 && !m_bCritBanned; - bool bPressed = Vars::CritHack::ForceCrits.Value || Vars::CritHack::AlwaysMeleeCrit.Value && m_bMelee && (Vars::Aimbot::General::AutoShoot.Value ? pCmd->buttons & IN_ATTACK && !(G::OriginalCmd.buttons & IN_ATTACK) : Vars::Aimbot::General::AimType.Value); + bool bPressed = Vars::CritHack::ForceCrits.Value; + if (Vars::CritHack::AlwaysMeleeCrit.Value && m_bMelee + && (Vars::Aimbot::General::AutoShoot.Value ? pCmd->buttons & IN_ATTACK && !(G::OriginalCmd.buttons & IN_ATTACK) : Vars::Aimbot::General::AimType.Value) + && G::AimTarget.m_iEntIndex) + { + auto pEntity = I::ClientEntityList->GetClientEntity(G::AimTarget.m_iEntIndex)->As(); + if (pEntity && pEntity->IsPlayer()) + bPressed = true; + } bool bSkip = Vars::CritHack::AvoidRandomCrits.Value; bool bDesync = CommandToSeed(pCmd->command_number) == pWeapon->m_iCurrentSeed(); diff --git a/Amalgam/src/Features/ImGui/Menu/Menu.cpp b/Amalgam/src/Features/ImGui/Menu/Menu.cpp index fbc258c8..6b6ef012 100644 --- a/Amalgam/src/Features/ImGui/Menu/Menu.cpp +++ b/Amalgam/src/Features/ImGui/Menu/Menu.cpp @@ -201,6 +201,8 @@ void CMenu::MenuAimbot(int iTab) FDropdown(Vars::Aimbot::Healing::HealPriority); FToggle(Vars::Aimbot::Healing::AutoHeal, FToggleEnum::Left); FToggle(Vars::Aimbot::Healing::AutoArrow, FToggleEnum::Right); + FToggle(Vars::Aimbot::Healing::AutoRepair, FToggleEnum::Left); + FToggle(Vars::Aimbot::Healing::AutoSandvich, FToggleEnum::Right); FToggle(Vars::Aimbot::Healing::AutoVaccinator, FToggleEnum::Left); FToggle(Vars::Aimbot::Healing::ActivateOnVoice, FToggleEnum::Right); } EndSection(); @@ -301,7 +303,6 @@ void CMenu::MenuAimbot(int iTab) FToggle(Vars::Aimbot::Projectile::SplashGrates, FToggleEnum::Right); FSlider(Vars::Aimbot::Projectile::SplashRotateX, FSliderEnum::Left, Vars::Aimbot::Projectile::SplashRotateX[DEFAULT_BIND] < 0.f ? "random" : "%g"); FSlider(Vars::Aimbot::Projectile::SplashRotateY, FSliderEnum::Right, Vars::Aimbot::Projectile::SplashRotateY[DEFAULT_BIND] < 0.f ? "random" : "%g"); - FSlider(Vars::Aimbot::Projectile::SplashNthRoot); FSlider(Vars::Aimbot::Projectile::SplashCountDirect, FSliderEnum::Left); FSlider(Vars::Aimbot::Projectile::SplashCountArc, FSliderEnum::Right); FSlider(Vars::Aimbot::Projectile::SplashTraceInterval, FSliderEnum::Left); @@ -1304,7 +1305,7 @@ void CMenu::MenuLogs(int iTab) { // tag bar SetCursorPos({ vOriginalPos.x + lOffset, vOriginalPos.y }); - if (BeginChild(std::format("TagBar{}", tPlayer.m_uAccountID).c_str(), { flWidth - lOffset - H::Draw.Scale(4), flHeight }, ImGuiWindowFlags_None, ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoBackground)) + if (BeginChild(std::format("TagBar{}", tPlayer.m_iUserID).c_str(), { flWidth - lOffset - H::Draw.Scale(4), flHeight }, ImGuiWindowFlags_None, ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoBackground)) { std::vector vLabels = {}; std::vector> vTags = {}; @@ -1351,13 +1352,13 @@ void CMenu::MenuLogs(int iTab) bClicked = IsItemHovered() && IsMouseReleased(ImGuiMouseButton_Right); } SetCursorPos(vOriginalPos); - Button(std::format("##{}", tPlayer.m_uAccountID).c_str(), { flWidth, flHeight }); + Button(std::format("##{}", tPlayer.m_iUserID).c_str(), { flWidth, flHeight }); bClicked = bClicked || IsItemHovered() && IsMouseReleased(ImGuiMouseButton_Right); // popups if (bClicked) - OpenPopup(std::format("Clicked{}", tPlayer.m_uAccountID).c_str()); - if (FBeginPopup(std::format("Clicked{}", tPlayer.m_uAccountID).c_str())) + OpenPopup(std::format("Clicked{}", tPlayer.m_iUserID).c_str()); + if (FBeginPopup(std::format("Clicked{}", tPlayer.m_iUserID).c_str())) { PushStyleVar(ImGuiStyleVar_ItemSpacing, { H::Draw.Scale(8), H::Draw.Scale(8) }); diff --git a/Amalgam/src/SDK/Vars.h b/Amalgam/src/SDK/Vars.h index d32f714f..b65eb865 100644 --- a/Amalgam/src/SDK/Vars.h +++ b/Amalgam/src/SDK/Vars.h @@ -263,7 +263,8 @@ namespace Vars FOV, Distance); CVarEnum(Target, "Target", 0b0000001, DROPDOWN_MULTI, nullptr, 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, + Building = Sentry | Dispenser | Teleporter); CVarEnum(Ignore, "Ignore", 0b00000001000, DROPDOWN_MULTI, nullptr, 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); @@ -356,9 +357,8 @@ namespace Vars CVar(HuntsmanPullPoint, "Huntsman pull point", false, NOSAVE | DEBUGVAR); CVar(SplashPoints, "Splash points", 100, NOSAVE | DEBUGVAR | SLIDER_MIN, 1, 400, 5); CVar(SplashGrates, "Splash grates", true, NOSAVE | DEBUGVAR); - CVar(SplashRotateX, "Splash Rx", 0.f, NOSAVE | DEBUGVAR | SLIDER_MIN | SLIDER_PRECISION, -1.f, 360.f); + CVar(SplashRotateX, "Splash Rx", -1.f, NOSAVE | DEBUGVAR | SLIDER_MIN | SLIDER_PRECISION, -1.f, 360.f); CVar(SplashRotateY, "Splash Ry", -1.f, NOSAVE | DEBUGVAR | SLIDER_MIN | SLIDER_PRECISION, -1.f, 360.f); - CVar(SplashNthRoot, "Splash Nth root", 1.f, NOSAVE | DEBUGVAR | SLIDER_MIN | SLIDER_PRECISION, 0.5f, 2.f, 0.1f); CVar(SplashCountDirect, "Direct splash count", 100, NOSAVE | DEBUGVAR | SLIDER_MIN, 1, 100); CVar(SplashCountArc, "Arc splash count", 5, NOSAVE | DEBUGVAR | SLIDER_MIN, 1, 100); CVar(SplashTraceInterval, "Splash trace interval", 10, NOSAVE | DEBUGVAR, 1, 10); @@ -396,6 +396,8 @@ namespace Vars None, PrioritizeTeam, PrioritizeFriends, FriendsOnly); CVar(AutoHeal, "Auto heal", false); CVar(AutoArrow, "Auto arrow", false); + CVar(AutoRepair, "Auto repair", false); + CVar(AutoSandvich, "Auto sandvich", false); CVar(AutoVaccinator, "Auto vaccinator", false); CVar(ActivateOnVoice, "Activate on voice", false);