/// <summary> /// Update data from process. /// </summary> public void Update(GameProcess gameProcess) { var addressBase = gameProcess.ModuleClient.Read <IntPtr>(Offsets.dwLocalPlayer); if (addressBase == IntPtr.Zero) { return; } // get matrices MatrixViewport = GfxMath.GetMatrixViewport(gameProcess.WindowRectangleClient.Size); // read data Origin = gameProcess.Process.Read <Vector3>(addressBase + Offsets.m_vecOrigin); ViewOffset = gameProcess.Process.Read <Vector3>(addressBase + Offsets.m_vecViewOffset); EyePosition = Origin + ViewOffset; ViewAngles = gameProcess.Process.Read <Vector3>(gameProcess.ModuleEngine.Read <IntPtr>(Offsets.dwClientState) + Offsets.dwClientState_ViewAngles); AimPunchAngle = gameProcess.Process.Read <Vector3>(addressBase + Offsets.m_aimPunchAngle); Fov = gameProcess.Process.Read <int>(addressBase + Offsets.m_iFOV); if (Fov == 0) { Fov = 90; // correct for default } // calc data AimDirection = GetAimDirection(ViewAngles, AimPunchAngle); }
/// <summary> /// Update data from process. /// </summary> public void Update(GameProcess gameProcess) { var addressBase = gameProcess.ModuleClient.Read <IntPtr>(Offsets.dwLocalPlayer); if (addressBase == IntPtr.Zero) { return; } var origin = gameProcess.Process.Read <Vector3>(addressBase + Offsets.m_vecOrigin); var viewOffset = gameProcess.Process.Read <Vector3>(addressBase + Offsets.m_vecViewOffset); var eyePosition = origin + viewOffset; Console.WriteLine($"{eyePosition.X:0.00} {eyePosition.Y:0.00} {eyePosition.Z:0.00}"); }
/// <summary /> public GameData(GameProcess gameProcess) { GameProcess = gameProcess; Player = new Player(); Entities = Enumerable.Range(0, 64).Select(index => new Entity(index)).ToArray(); }
/// <summary /> public GameData(GameProcess gameProcess) { GameProcess = gameProcess; Player = new Player(); }