Greasy Fork

Greasy Fork is available in English.

NOVA Aimbot for Xbox Cloud Gaming

Aimbot script for automatic aiming and ESP for Fortnite with FOV adjustments and controller support.

当前为 2024-12-10 提交的版本,查看 最新版本

// ==UserScript==
// @name         NOVA Aimbot for Xbox Cloud Gaming
// @namespace    http://tampermonkey.net/
// @version      17
// @description  Aimbot script for automatic aiming and ESP for Fortnite with FOV adjustments and controller support.
// @author       YourName
// @match        https://www.xbox.com/en-US/play/launch/fortnite/BT5P2X999VH2
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    let aimAssistEnabled = false;
    let espEnabled = false;
    let fov = 90; // Default FOV value in degrees
    let players = [];

    // Create GUI for the aimbot
    function createGUI() {
        const gui = document.createElement('div');
        gui.style.position = 'absolute';
        gui.style.top = '10px';
        gui.style.left = '10px';
        gui.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
        gui.style.color = 'white';
        gui.style.padding = '10px';
        gui.style.zIndex = '9999';
        gui.style.fontFamily = 'Arial, sans-serif';

        gui.innerHTML = `
            <h4>NOVA Aimbot Settings</h4>
            <label>
                <input type="checkbox" id="aimAssistToggle"> Enable Aim Assist
            </label><br>
            <label>
                <input type="checkbox" id="espToggle"> Enable ESP
            </label><br>
            <label>
                FOV: <input type="number" id="fovInput" value="${fov}" min="30" max="180">
            </label><br>
            <button id="resetButton">Reset FOV</button>
        `;

        document.body.appendChild(gui);

        // Event listeners for GUI elements
        document.getElementById('aimAssistToggle').addEventListener('change', (event) => {
            aimAssistEnabled = event.target.checked;
            console.log(`Aim assist ${aimAssistEnabled ? 'enabled' : 'disabled'}`);
        });

        document.getElementById('espToggle').addEventListener('change', (event) => {
            espEnabled = event.target.checked;
            console.log(`ESP ${espEnabled ? 'enabled' : 'disabled'}`);
        });

        document.getElementById('fovInput').addEventListener('input', (event) => {
            fov = Math.max(30, Math.min(180, event.target.value)); // Ensure FOV is within limits
            console.log(`FOV set to: ${fov}`);
        });

        document.getElementById('resetButton').addEventListener('click', () => {
            fov = 90; // Reset FOV to default
            document.getElementById('fovInput').value = fov;
            console.log(`FOV reset to default: ${fov}`);
        });
    }

    // Function to simulate player detection; replace with actual logic
    function detectPlayers() {
        const playerElements = document.querySelectorAll('.target-element'); // Use the actual player selector
        players = Array.from(playerElements).map(player => {
            const rect = player.getBoundingClientRect();
            return {
                x: Math.round(rect.x + rect.width / 2),
                y: Math.round(rect.y + rect.height / 2)
            };
        });
    }

    // Check if a target is in the FOV
    function isTargetInFOV(targetX, targetY) {
        const crosshairX = window.innerWidth / 2;
        const crosshairY = window.innerHeight / 2;
        const angleToTarget = Math.atan2(targetY - crosshairY, targetX - crosshairX) * (180 / Math.PI);
        const fovHalf = fov / 2;

        return Math.abs(angleToTarget) <= fovHalf;
    }

    // Function to apply aim assist logic
    function applyAimAssist() {
        if (!aimAssistEnabled) return;

        detectPlayers(); // Detect players on the screen
        let target = null;

        // Find the first player within FOV to aim at
        for (const player of players) {
            if (isTargetInFOV(player.x, player.y)) {
                target = player;
                break; // Use the first target found within FOV
            }
        }

        if (target) {
            // Calculate movement
            const aimOffsetX = (target.x - (window.innerWidth / 2)) / 15; // Adjust sensitivity (faster = number lower)
            const aimOffsetY = (target.y - (window.innerHeight / 2)) / 15;

            // Simulate mouse movement
            dispatchMouseMove(aimOffsetX, aimOffsetY);
            console.log(`Aiming at target: ${target.x}, ${target.y}`);
        }
        
        if (espEnabled) {
            drawPlayerBoxes(); // Draw boxes around detected players if ESP is enabled
        }
        
        drawFOVBox(); // Always draw the FOV box
    }

    // Simulate mouse movement with a smooth transition
    function dispatchMouseMove(offsetX, offsetY) {
        const mouseEvent = new MouseEvent('mousemove', {
            clientX: (window.innerWidth / 2) + offsetX,
            clientY: (window.innerHeight / 2) + offsetY,
        });
        document.dispatchEvent(mouseEvent);
    }

    // Draw boxes around detected players
    function drawPlayerBoxes() {
        const ctx = canvas.getContext('2d');
        ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear previous frames
        players.forEach(player => {
            ctx.strokeStyle = 'red'; // Change color as needed
            ctx.strokeRect(player.x - 25, player.y - 25, 50, 50); // Draw box around player
        });
    }

    // Draw the FOV box
    function drawFOVBox() {
        const ctx = canvas.getContext('2d');
        const crosshairX = window.innerWidth / 2;
        const crosshairY = window.innerHeight / 2;
        const fovHalfSize = aimAssistConfig.fov;

        ctx.strokeStyle = 'green';  // FOV box color
        ctx.strokeRect(crosshairX - fovHalfSize / 2, crosshairY - fovHalfSize / 2, fovHalfSize, fovHalfSize);
    }

    // Start the aim assist loop
    function aimAssistLoop() {
        applyAimAssist(); // Run main logic for aiming
        requestAnimationFrame(aimAssistLoop); // Call the next frame
    }

    // Initialize on window load
    window.addEventListener('load', () => {
        createGUI(); // Create the GUI when the page is fully loaded
        aimAssistLoop(); // Start the aim assist loop
    });

    console.log("NOVA Aimbot script loaded for Xbox Cloud Gaming with FOV and GUI!");
})();