コード例 #1
0
        /// <inheritdoc />
        public override bool Update(GameProcess gameProcess)
        {
            if (!base.Update(gameProcess))
            {
                return(false);
            }

            // get matrices
            MatrixViewProjection         = Matrix.TransposeMatrix(gameProcess.ModuleClient.Read <Matrix>(Offsets.dwViewMatrix));
            MatrixViewport               = GfxMath.GetMatrixViewport(gameProcess.WindowRectangleClient.Size);
            MatrixViewProjectionViewport = MatrixViewProjection * MatrixViewport;

            // read data
            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);

            return(true);
        }
コード例 #2
0
        /// <inheritdoc />
        public override bool Update(GameProcess gameProcess)
        {
            if (!base.Update(gameProcess))
            {
                return false;
            }

            // get matrices
            MatrixViewProjection = Matrix.TransposeMatrix(gameProcess.ModuleClient.Read<Matrix>(Offsets.dwViewMatrix));
            MatrixViewport = GfxMath.GetMatrixViewport(gameProcess.WindowRectangleClient.Size);
            MatrixViewProjectionViewport = MatrixViewProjection * MatrixViewport;

            // read data
            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
            EyeDirection = GfxMath.GetVectorFromEulerAngles(ViewAngles.X.DegreeToRadian(), ViewAngles.Y.DegreeToRadian());
            AimDirection = GfxMath.GetVectorFromEulerAngles
            (
                (ViewAngles.X + AimPunchAngle.X * Offsets.weapon_recoil_scale).DegreeToRadian(),
                (ViewAngles.Y + AimPunchAngle.Y * Offsets.weapon_recoil_scale).DegreeToRadian()
            );

            return true;
        }
コード例 #3
0
        public override bool Update(GameProcess gameProcess)
        {
            if (!base.Update(gameProcess))
            {
                return(false);
            }

            // Read data
            EyePosition   = getPlayerEyePosition(gameProcess);
            ViewAngles    = gameProcess.Process.Read <Vector3>(gameProcess.ModuleEngine.Read <IntPtr>(Offsets.dwClientState) + Offsets.dwClientState_ViewAngles);
            EyeDirection  = GfxMath.GetVectorFromEulerAngles(GfxMath.DegreeToRadian(ViewAngles.X), GfxMath.DegreeToRadian(ViewAngles.Y));
            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
            }
            // Update player info
            vecVelocity  = getPlayerVecVelocity(gameProcess);
            ActiveWeapon = getActiveWeapon(gameProcess);
            UpdatePrimaryWeapon(ActiveWeapon);
            AmmoCount         = AmmoCounter(gameProcess);
            HasDefuseKit      = checkIfHasDefuseKit(gameProcess);
            isAimingDownScope = checkIfAds(gameProcess);
            CanShoot          = checkIfCanShoot(gameProcess);
            CursorLocked      = checkIfCursorLocked(gameProcess);
            Location          = getPlayerLocation(gameProcess);

            // calc data
            AimDirection = GetAimDirection(ViewAngles, AimPunchAngle);

            return(true);
        }
コード例 #4
0
        /// <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);
        }