private static void DoBhop(ref CUserCmd cmd, C_CSPlayer pLocal) { if (!lastJumped && shouldFake) { shouldFake = false; cmd.buttons |= defs.IN_JUMP; } else if (HasFlag(cmd.buttons, defs.IN_JUMP)) { if (HasFlag(pLocal, defs.EntityFlags.FL_ONGROUND)) { lastJumped = true; shouldFake = true; } else { cmd.buttons &= ~defs.IN_JUMP; lastJumped = false; } } else { lastJumped = false; shouldFake = false; } }
private static void CreateMove_AfterCreateMove(ref CUserCmd pCmd) { if ((menu.Children[0] as GUIManager.ToggleMenu).IsToggled()) { var pLocal = C_CSPlayer.GetLocalPlayer(); if (!pLocal.IsAlive()) { return; } var punchAngles = pLocal.AimPunch() * 2; pCmd.viewangles -= punchAngles; } }
private static void CreateMove_BeforeCreateMove(ref CUserCmd cmd) { var pLocal = C_CSPlayer.GetLocalPlayer(); if (((GUIManager.ToggleMenu)menu.Children[1]).IsToggled()) { DoStrafe(ref cmd, pLocal); } if (((GUIManager.ToggleMenu)menu.Children[0]).IsToggled()) { DoBhop(ref cmd, pLocal); } }
private static void DoStrafe(ref CUserCmd cmd, C_CSPlayer pLocal) { if (cmd.mousedx <= 1 && cmd.mousedx >= -1) { return; } if (HasFlag(pLocal, defs.EntityFlags.FL_ONGROUND)) { return; } if (HasFlag(cmd.buttons, defs.IN_JUMP)) { cmd.sidemove = cmd.mousedx < 0 ? -450.0f : 450.0f; } }
public static void ChangeViewAngles(Vector3 Angles, bool CanShoot) { //read pointers to commands buffer and clientstate CInput Input = CylMem.CRead2 <CInput>(Modules.ClientDLLAdress + dwInput); int ClientState = CylMem.ReadInt(Modules.EngineDLLAdress + dwClientState); //stop sending packets EngineClient.SendPackets = false; int DesiredCmd = CylMem.ReadInt(ClientState + clientstate_last_outgoing_command); //read the last outgoing command DesiredCmd += 2; //+1 current one +2 incomming one //calculate addresses of Icomming cmd and current cmd + verified, 150 is the size of the commands buffer int IncommingUserCmd = Input.Commands + (DesiredCmd % 150) * Marshal.SizeOf(typeof(CUserCmd)); int CurrentUserCmd = Input.Commands + ((DesiredCmd - 1) % 150) * Marshal.SizeOf(typeof(CUserCmd)); int VerifiedCurrentUserCmd = Input.VerifiedCommands + ((DesiredCmd - 1) % 150) * Marshal.SizeOf(typeof(CVerifiedUserCmd)); int CmdNumber = 0; while (CmdNumber < DesiredCmd) //now we wait until is the right time to hit, dont sleep! the wait time is really short, in fact it doesnt consume cpu, +0x04 skips vft and reads the cmd number { CmdNumber = CylMem.ReadInt(IncommingUserCmd + 0x04); } CUserCmd CMD = CylMem.CRead2 <CUserCmd>(CurrentUserCmd); //we hack this one, read it CMD.ViewAngles.X = Angles.X; //set new view angles CMD.ViewAngles.Y = Angles.Y; if (CanShoot) //trigger shoot button if we set CanShoot to true { CMD.Buttons |= 1 << 0; } //when you are done write em back CylMem.CWrite <CUserCmd>(CurrentUserCmd, CMD); CylMem.CWrite <CUserCmd>(VerifiedCurrentUserCmd, CMD); //dont bother calculating crc (accualy you can do it to make vac happy and not get banned easilly lol) EngineClient.SendPackets = true; //restore sending packets }
private static void CreateMove_BeforeCreateMove(ref CUserCmd pCmd) { if (!(menu.Children[0] as GUIManager.ToggleMenu).IsToggled()) { return; } if (!hotkey.IsToggled()) { return; } var pLocal = C_CSPlayer.GetLocalPlayer(); if (pLocal.IsValid() && pLocal.IsAlive()) { var weapon = pLocal.GetActiveWeapon(); if (!weapon.IsValid() || weapon.IsC4() || weapon.IsKnife() || weapon.IsGrenade()) { return; } var vTraceForward = new Vector3(); var vTraceAngles = pCmd.viewangles; global::HepajSharp.Utils.Utils.AngleVectors(vTraceAngles, ref vTraceForward); var vTraceStart = C_CSPlayer.GetLocalPlayer().GetEyePos(); var vTraceEnd = vTraceStart + vTraceForward * 8192.0f; var trace = Helper.TraceRay(vTraceStart, vTraceEnd, pLocal.m_BaseAddress, (int)(Definitions.MASKS.MASK_SHOT_HULL | Definitions.MASKS.CONTENTS_HITBOX)); if (trace.fraction != 1.0f && trace.m_pEnt != IntPtr.Zero) { if (!throughSmoke.IsToggled() && global::HepajSharp.Utils.Utils.LineThroughSmoke(vTraceStart, vTraceEnd)) { return; } var target = new C_CSPlayer(trace.m_pEnt); if (target.IsValid() && target.GetClassID() == Definitions.EClassIds.CCSPlayer && target.IsAlive() /* && target.GetHealth() > 0*/ && target.IsEnemy()) //GetHealth kell ha nem ellenőrzünk ClassID-t { if (autopistol.IsToggled()) { if (weapon.IsPistol()) { if (!weapon.CanFire()) { pCmd.buttons &= ~Definitions.IN_ATTACK; } else { pCmd.buttons |= Definitions.IN_ATTACK; } } else { pCmd.buttons |= Definitions.IN_ATTACK; } } else { pCmd.buttons |= Definitions.IN_ATTACK; } } } } }
public void SetUserCmd(int iIndex, CUserCmd cmd) { MemoryAPI.WriteToProcess <CUserCmd>(Globals._csgo.ProcessHandle, IntPtr.Add(pThis, ((iIndex) * 0x64) + 0x4), cmd); }
public void SetUserCmdBySequence(int sequence_number, CUserCmd cmd) { SetUserCmd(sequence_number % 150, cmd); }