Cryzen.io FPS Booster (Dynamic Resolution)

Optimize settings for better FPS in Cryzen.io with dynamic resolution scaling and memory leak fixes.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Cryzen.io FPS Booster (Dynamic Resolution)
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  Optimize settings for better FPS in Cryzen.io with dynamic resolution scaling and memory leak fixes.
// @author       Your Name
// @match        *://cryzen.io/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    let optimizationEnabled = true;
    let lowResolutionEnabled = false; // Flag to track if low resolution mode is active
    const FPS_THRESHOLD_LOW = 30;  // Reduce resolution if FPS drops below this
    const FPS_THRESHOLD_HIGH = 50; // Restore full resolution if FPS rises above this
    const OPTIMIZATION_INTERVAL = 3000; // Apply optimizations every 3 seconds

    let lastCheck = performance.now();
    let fps = 0;
    let lastTime = performance.now();
    
    const fpsDisplay = document.createElement('div');
    fpsDisplay.style.position = 'fixed';
    fpsDisplay.style.top = '10px';
    fpsDisplay.style.right = '10px';
    fpsDisplay.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
    fpsDisplay.style.color = 'white';
    fpsDisplay.style.padding = '5px';
    fpsDisplay.style.zIndex = '1000';
    document.body.appendChild(fpsDisplay);

    function adjustCanvasResolution(scaleFactor) {
        const canvas = document.querySelector('canvas');
        if (canvas) {
            const devicePixelRatio = window.devicePixelRatio * scaleFactor;
            canvas.width = window.innerWidth * devicePixelRatio;
            canvas.height = window.innerHeight * devicePixelRatio;
            console.log(`Canvas resolution adjusted. Scale Factor: ${scaleFactor}`);
        }
    }

    function optimizeGame() {
        if (!optimizationEnabled) return;

        // Hide high-detail elements
        document.querySelectorAll('.high-detail').forEach(element => {
            element.style.display = 'none';
        });
    }

    function monitorFPS() {
        setInterval(() => {
            const now = performance.now();
            const elapsedTime = now - lastTime;

            fpsDisplay.innerText = `FPS: ${fps}`;
            
            // Dynamic Resolution Adjustment
            if (fps < FPS_THRESHOLD_LOW && !lowResolutionEnabled) {
                lowResolutionEnabled = true;
                adjustCanvasResolution(0.5); // Reduce resolution
            } else if (fps > FPS_THRESHOLD_HIGH && lowResolutionEnabled) {
                lowResolutionEnabled = false;
                adjustCanvasResolution(1); // Restore full resolution
            }

            fps = 0;
            lastTime = now;
        }, 1000);
    }

    function countFrames() {
        fps++;
        requestAnimationFrame(countFrames);
    }

    function throttleOptimization() {
        setInterval(() => {
            optimizeGame();
        }, OPTIMIZATION_INTERVAL);
    }

    countFrames();
    monitorFPS();
    throttleOptimization();
})();