Greasy Fork

Greasy Fork is available in English.

NOVA Aimbot for Xbox Cloud Gaming

Aimbot script for automatic aiming and optional shooting with ESP for Fortnite with FOV adjustment and controller support.

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

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

(function () {
    'use strict';

    // Configuration
    const aimAssistConfig = {
        sensitivity: 1.0, // Adjusts how quickly the aim snaps
        detectionInterval: 100, // Milliseconds between detections
        toggleKeys: ['4', 't'], // Keys to toggle aim assist
        assistEnabled: false, // Start with aim assist off
        espEnabled: false, // Start with ESP off
        fov: 90 // Field of View
    };

    // 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="${aimAssistConfig.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) => {
            aimAssistConfig.assistEnabled = event.target.checked;
            console.log(`Aim assist ${aimAssistConfig.assistEnabled ? '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) => {
            aimAssistConfig.fov = Math.max(30, Math.min(180, event.target.value)); // Ensure FOV is within limits
            console.log(`FOV set to: ${aimAssistConfig.fov}`);
        });

        document.getElementById('resetButton').addEventListener('click', () => {
            aimAssistConfig.fov = 90; // Reset FOV to default
            document.getElementById('fovInput').value = aimAssistConfig.fov;
            console.log(`FOV reset to default: ${aimAssistConfig.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 (not used directly but can be integrated)
    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 (aimAssistConfig.assistEnabled) {
            // Draw the video frame to the canvas (only if using a video element)
            if (videoElement) {
                canvas.width = videoElement.videoWidth;
                canvas.height = videoElement.videoHeight;
                context.drawImage(videoElement, 0, 0, canvas.width, canvas.height);
            }

            // Simulate aim assist logic
            const targets = await detectTargets(); // Detect targets based on your own logic

            // 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 detected player locations
            }
            drawFOVBox(); // Draw the FOV box
        }
        setTimeout(aimAssistLoop, aimAssistConfig.detectionInterval); // Loop refresh
    }

    // Function for object detection
    async function detectTargets() {
        // Use your detection logic here
        // Placeholder logic: Return a mock target in the center of the canvas
        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 boxes around detected players
    function drawPlayerBoxes(players) {
        if (!canvas) return;
        const ctx = canvas.getContext('2d');
        ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear previous frame
        players.forEach(player => {
            ctx.strokeStyle = 'red'; // Change color as needed
            ctx.strokeRect(player.x - 25, player.y - 25, 50, 50); // Draw bounding box around player
        });
    }

    // 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; // FOV visual representation
        
        ctx.strokeStyle = 'green';  // FOV box color
        ctx.strokeRect(crosshairX - fovHalfSize / 2, crosshairY - fovHalfSize / 2, fovHalfSize, fovHalfSize);
    }

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

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