Greasy Fork

Greasy Fork is available in English.

NOVA Aimbot for Xbox Cloud Gaming

Aimbot script for automatic aiming, ESP, and optional shooting in Fortnite with FOV adjustments and controller support.

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

// ==UserScript==
// @name         NOVA Aimbot for Xbox Cloud Gaming
// @namespace    http://tampermonkey.net/
// @version      16
// @description  Aimbot script for automatic aiming, ESP, and optional shooting in 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 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>Aimbot and ESP 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) => {
            aimAssistConfig.espEnabled = event.target.checked;
            console.log(`ESP ${aimAssistConfig.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}`);
        });
    }

    // Capture game video feed
    const videoElement = document.querySelector('video'); // Most cloud gaming platforms use <video>
    if (!videoElement) {
        console.error("Video element not found. Make sure you're running this on a cloud gaming page.");
    }

    // Create a canvas for processing
    const canvas = document.createElement('canvas');
    const context = canvas.getContext('2d');
    document.body.appendChild(canvas); // Optional: Add canvas to the page for debugging

    // Main detection loop
    async function aimAssistLoop() {
        if (aimAssistEnabled) {
            // Draw the video frame to the canvas
            canvas.width = videoElement.videoWidth;
            canvas.height = videoElement.videoHeight;
            context.drawImage(videoElement, 0, 0, canvas.width, canvas.height);

            // Run object detection
            const targets = await detectTargets(); // Implement detectTargets()

            // Simulate aiming if targets are found
            if (targets.length > 0) {
                adjustAimToTarget(targets[0]); // Snap to the first detected target
            }

            if (aimAssistConfig.espEnabled) {
                drawPlayerBoxes(targets); // Optional visual feedback for player locations
            }
            drawFOVBox(); // Draw the FOV box
        }
        setTimeout(aimAssistLoop, aimAssistConfig.detectionInterval); // Loop refresh
    }

    // Object detection logic (example placeholder)
    async function detectTargets() {
        // Placeholder logic: Return mock targets in the center of the canvas for demonstration
        return [{ x: canvas.width / 2, y: canvas.height / 2 }];
    }

    // Adjust aim (simulate mouse movement)
    function adjustAimToTarget(target) {
        const mouseEvent = new MouseEvent('mousemove', {
            clientX: target.x,
            clientY: target.y,
        });
        document.dispatchEvent(mouseEvent);
        console.log(`Aiming at target: ${target.x}, ${target.y}`);
    }

    // Draw the FOV box
    function drawFOVBox() {
        const ctx = canvas.getContext('2d');
        const crosshairX = window.innerWidth / 2; // Center x of the screen
        const crosshairY = window.innerHeight / 2; // Center y of the screen
        const fovHalfSize = aimAssistConfig.fov; // Visual representation of the FOV
        
        ctx.strokeStyle = 'green';  // FOV box color
        ctx.strokeRect(crosshairX - fovHalfSize / 2, crosshairY - fovHalfSize / 2, fovHalfSize, fovHalfSize);
    }

    // Draw boxes around detected players
    function drawPlayerBoxes(players) {
        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, // Adjust width as needed
                player.y - 25, // Adjust height as needed
                50,            // Width of the box
                50             // Height of the box
            );

            // Optionally draw player name above the box
            ctx.fillStyle = 'red';
            ctx.font = 'bold 12px Arial';
            ctx.fillText(`Player`, player.x, player.y - 30); // Draw player name 
        });
    }

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

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