From 62e9b1098f9a24f3d6bf6164a668a89af98b002f Mon Sep 17 00:00:00 2001 From: BenCat07 Date: Thu, 1 Feb 2018 17:54:15 +0100 Subject: [PATCH] Important Updates: - Fix Stickyspam - Undo the command number and lastoutgoingcommand increase - Add Loose Cannon Spam --- src/hacks/LagExploit.cpp | 78 +++++++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/src/hacks/LagExploit.cpp b/src/hacks/LagExploit.cpp index 8a70bfcb..e55bbddc 100644 --- a/src/hacks/LagExploit.cpp +++ b/src/hacks/LagExploit.cpp @@ -18,7 +18,7 @@ CatVar toggle(CV_SWITCH, "se_toggle", "0", "Toggle sequence exploit"); CatVar shoot(CV_SWITCH, "se_shoot", "0", "Allows instant revving up or shooting two shots at once"); CatVar stickyspam(CV_SWITCH, "se_stickyspam", "0", - "Allows Spam of stickies, only works if cat_se_toggle is on and disables shoot/cloak while on."); + "Allows Spam of stickies simply by holding Mouse1."); CatVar cloak(CV_SWITCH, "se_cloak", "0", "Instant decloak/cloak"); CatVar instant_weapon_switch(CV_SWITCH, "se_switch", "0", "Instant weapon switch"); @@ -138,46 +138,50 @@ void CreateMove() (g_pUserCmd->buttons & IN_ATTACK2)); if (!LOCAL_E->m_bAlivePlayer) return; - if (!stickyspam && instant_weapon_switch && not HasCondition(LOCAL_E)) + if (instant_weapon_switch && not HasCondition(LOCAL_E)) { static int lastweapon = 0; if (lastweapon != g_pUserCmd->weaponselect) amount = 1 * 90; lastweapon = g_pUserCmd->weaponselect; } - if (cloak && shoot && !stickyspam) + if (cloak && shoot) { - if (g_pLocalPlayer->weapon()->m_iClassID == CL_CLASS(CTFKnife)) - { - if ((g_pUserCmd->buttons & IN_ATTACK) && !bWasHolding && - HasCondition(LOCAL_E)) - { - g_pUserCmd->buttons &= ~IN_ATTACK; - g_pUserCmd->buttons |= IN_ATTACK2; - amount = 2 * 90; - } + if ((g_pUserCmd->buttons & IN_ATTACK) && !bWasHolding && + HasCondition(LOCAL_E) && + g_pLocalPlayer->weapon()->m_iClassID == CL_CLASS(CTFKnife)) + { + g_pUserCmd->buttons &= ~IN_ATTACK; + g_pUserCmd->buttons |= IN_ATTACK2; + amount = 2 * 90; } - else if (CanShoot() && bIsHolding && !bWasHolding && g_pLocalPlayer->weapon()->m_iClassID != CL_CLASS(CTFFlareGun)) - amount = 1 * 90; - else if (CanShoot() && bIsHolding && !bWasHolding && g_pLocalPlayer->weapon()->m_iClassID == CL_CLASS(CTFFlareGun)) - amount = 2 * 90; + else if (CanShoot() && bIsHolding && !bWasHolding && + g_pLocalPlayer->weapon()->m_iClassID != CL_CLASS(CTFFlareGun)) + amount = 1 * 90; + else if (CanShoot() && bIsHolding && !bWasHolding && + g_pLocalPlayer->weapon()->m_iClassID == CL_CLASS(CTFFlareGun)) + amount = 2 * 90; else if (bWasHolding && !bIsHolding) amount = 1 * 90; bWasHolding = (g_pUserCmd->buttons & IN_ATTACK) || (g_pUserCmd->buttons & IN_ATTACK2); } - else if (!cloak && !stickyspam) + else if (!cloak) { if (shoot) { if (not g_pLocalPlayer->holding_sniper_rifle) { - if (CanShoot() && bIsHolding && !bWasHolding && g_pLocalPlayer->weapon()->m_iClassID != CL_CLASS(CTFFlareGun)) + if (CanShoot() && bIsHolding && !bWasHolding && + g_pLocalPlayer->weapon()->m_iClassID != + CL_CLASS(CTFFlareGun)) amount = 1 * 90; - else if (CanShoot() && bIsHolding && !bWasHolding && g_pLocalPlayer->weapon()->m_iClassID == CL_CLASS(CTFFlareGun)) - amount = 2 * 90; + else if (CanShoot() && bIsHolding && !bWasHolding && + g_pLocalPlayer->weapon()->m_iClassID == + CL_CLASS(CTFFlareGun)) + amount = 2 * 90; else if (bWasHolding && !bIsHolding) amount = 1 * 90; bWasHolding = (g_pUserCmd->buttons & IN_ATTACK) || @@ -216,18 +220,34 @@ void CreateMove() if (key.KeyDown() || exticks || toggle) amount = int(value); - if (stickyspam) { - if (g_pLocalPlayer->weapon()->m_iClassID == CL_CLASS(CTFPipebombLauncher) && toggle && (g_pUserCmd->buttons & IN_ATTACK)) { - amount = 0; - } - } + + // Thanks Wheaties For help! + if (stickyspam) + { + if (g_pLocalPlayer->weapon()->m_iClassID == (CL_CLASS(CTFCannon)) || + g_pLocalPlayer->weapon()->m_iClassID == + (CL_CLASS(CTFPipebombLauncher))) + { + static bool bSwitch = false; + if ((g_pUserCmd->buttons & IN_ATTACK) && !bSwitch) + { + bSwitch = true; + } + else if (bSwitch) + { + amount = 1 * 50; + g_pUserCmd->buttons &= ~IN_ATTACK; + bSwitch = false; + } + } + } if (!amount) return; - g_pUserCmd->command_number += amount; - *(int*)((unsigned)g_IBaseClientState + offsets::lastoutgoingcommand()) += - amount; - + /*g_pUserCmd->command_number += amount; + g_pUserCmd->hasbeenpredicted = true; + *(int *) ((unsigned) g_IBaseClientState + offsets::lastoutgoingcommand()) += + amount;*/ INetChannel *ch = (INetChannel *) g_IEngine->GetNetChannelInfo(); int &m_nOutSequenceNr = *(int *) ((unsigned) ch + offsets::m_nOutSequenceNr());