Greasy Fork

Greasy Fork is available in English.

Fortnite Xbox Cloud Aim Assist with Debugging

Fully featured Fortnite aimbot with ESP, FOV control, auto-shoot, sliders, buttons, and debugging logs.

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

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Fortnite Xbox Cloud Aim Assist with Debugging
// @namespace    http://tampermonkey.net/
// @version      28.3
// @description  Fully featured Fortnite aimbot with ESP, FOV control, auto-shoot, sliders, buttons, and debugging logs.
// @author       You
// @match        https://www.xbox.com/en-US/play/launch/fortnite/BT5P2X999VH2
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    const config = {
        enemySelector: '.enemy-class',
        playerSelector: '.PlayerInfo-module__container___ROgVL',
        aimInterval: 100,
        aimSmoothing: 0.2,
        fov: 60,
        fovRadius: 100,
        fovEnabled: true,
        enableESP: false,
        enableAimbot: true,
        autoShoot: false,
        distanceLimit: 500,
        aimSpeed: 0.2,
    };

    function debugLog(message) {
        console.log(`[DEBUG] ${message}`);
    }

    debugLog('Initializing script...');

    const guiStyle = `
        position: fixed;
        top: 10px;
        left: 10px;
        background: rgba(0, 0, 0, 0.7);
        color: white;
        padding: 10px;
        border-radius: 10px;
        z-index: 1000;
    `;

    const sliderStyle = `
        margin: 5px 0;
        width: 100%;
    `;

    const buttonStyle = `
        background: #4CAF50;
        color: white;
        border: none;
        padding: 5px 10px;
        margin: 5px 0;
        cursor: pointer;
        text-align: center;
        font-size: 14px;
        border-radius: 5px;
    `;

    const gui = document.createElement('div');
    gui.style.cssText = guiStyle;
    document.body.appendChild(gui);
    debugLog('GUI added to the page.');

    function createSlider(label, min, max, step, initialValue, onChange) {
        const container = document.createElement('div');
        container.style.marginBottom = '10px';

        const sliderLabel = document.createElement('label');
        sliderLabel.textContent = `${label}: ${initialValue}`;
        container.appendChild(sliderLabel);

        const slider = document.createElement('input');
        slider.type = 'range';
        slider.min = min;
        slider.max = max;
        slider.step = step;
        slider.value = initialValue;
        slider.style.cssText = sliderStyle;
        slider.addEventListener('input', (event) => {
            const value = parseFloat(event.target.value);
            sliderLabel.textContent = `${label}: ${value}`;
            onChange(value);
            debugLog(`${label} updated to ${value}`);
        });
        container.appendChild(slider);

        gui.appendChild(container);
    }

    function createButton(label, onClick) {
        const button = document.createElement('button');
        button.textContent = label;
        button.style.cssText = buttonStyle;
        button.addEventListener('click', onClick);
        gui.appendChild(button);
    }

    createSlider('Field of View (FOV)', 20, 180, 1, config.fov, (value) => {
        config.fov = value;
        updateFovCircle();
    });

    createSlider('Aim Smoothing', 0.1, 1, 0.1, config.aimSmoothing, (value) => {
        config.aimSmoothing = value;
    });

    createSlider('FOV Radius', 50, 500, 10, config.fovRadius, (value) => {
        config.fovRadius = value;
        updateFovCircle();
    });

    createButton('Toggle ESP', () => {
        config.enableESP = !config.enableESP;
        debugLog(`ESP ${config.enableESP ? 'Enabled' : 'Disabled'}`);
    });

    createButton('Toggle Aimbot', () => {
        config.enableAimbot = !config.enableAimbot;
        debugLog(`Aimbot ${config.enableAimbot ? 'Enabled' : 'Disabled'}`);
    });

    createButton('Toggle Auto-Shoot', () => {
        config.autoShoot = !config.autoShoot;
        debugLog(`Auto-Shoot ${config.autoShoot ? 'Enabled' : 'Disabled'}`);
    });

    const fovCircle = document.createElement('div');
    fovCircle.style.cssText = `
        position: fixed;
        top: 50%;
        left: 50%;
        width: ${config.fovRadius * 2}px;
        height: ${config.fovRadius * 2}px;
        border-radius: 50%;
        border: 2px solid red;
        pointer-events: none;
        transform: translate(-50%, -50%);
        opacity: 0.5;
        z-index: 999;
    `;
    document.body.appendChild(fovCircle);

    function updateFovCircle() {
        debugLog(`Updating FOV Circle to radius: ${config.fovRadius}`);
        fovCircle.style.width = `${config.fovRadius * 2}px`;
        fovCircle.style.height = `${config.fovRadius * 2}px`;
    }

    debugLog('FOV Circle initialized.');

    function aimAtEnemies() {
        const player = document.querySelector(config.playerSelector);
        const enemies = document.querySelectorAll(config.enemySelector);

        if (!player || enemies.length === 0) {
            debugLog('Player or enemies not found.');
            return;
        }

        enemies.forEach((enemy) => {
            const enemyRect = enemy.getBoundingClientRect();
            const playerRect = player.getBoundingClientRect();

            const enemyX = enemyRect.x + enemyRect.width / 2;
            const enemyY = enemyRect.y + enemyRect.height / 2;
            const playerX = playerRect.x + playerRect.width / 2;
            const playerY = playerRect.y + playerRect.height / 2;

            const angle = Math.atan2(enemyY - playerY, enemyX - playerX) * (180 / Math.PI);

            if (config.fovEnabled && Math.abs(angle) > config.fov / 2) {
                debugLog(`Enemy outside of FOV: ${angle}°`);
                return;
            }

            debugLog(`Aiming at enemy at angle: ${angle}°`);

            if (config.autoShoot) {
                debugLog('Auto-shoot triggered!');
            }
        });
    }

    setInterval(() => {
        if (config.enableAimbot) {
            aimAtEnemies();
        }
    }, config.aimInterval);

    debugLog('Aimbot initialized.');
})();