Wormax.IO Zoom [WORKS ONLY ON THORIUM]

Fix that makes the script compatible with every browser

2025-07-13 या दिनांकाला. सर्वात नवीन आवृत्ती पाहा.

// ==UserScript==
// @name         Wormax.IO Zoom [WORKS ONLY ON THORIUM]
// @namespace    http://tampermonkey.net/
// @version      3.1
// @description  Fix that makes the script compatible with every browser
// @author       AdamStorme
// @match        *://*.wormax.io/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    const script = document.createElement('script');
    script.textContent = '(' + function () {
        let zoomTarget = 1.0;
        let zoomCurrent = 1.0;

        function findCameraController() {
            const stack = [window];
            const visited = new WeakSet();

            while (stack.length) {
                const obj = stack.pop();
                if (!obj || typeof obj !== 'object' || visited.has(obj)) continue;
                visited.add(obj);

                for (const key in obj) {
                    try {
                        const val = obj[key];
                        if (
                            val &&
                            typeof val === 'object' &&
                            val.camera &&
                            typeof val.camera.zoom === 'number' &&
                            'updateZoom' in val &&
                            'follow' in val
                        ) {
                            return val;
                        }
                        if (val && typeof val === 'object') {
                            stack.push(val);
                        }
                    } catch {}
                }
            }
            return null;
        }

        function applySmoothZoom(camera) {
            function loop() {
                const diff = zoomTarget - zoomCurrent;
                zoomCurrent += diff * 0.1;
                if (Math.abs(diff) < 0.001) zoomCurrent = zoomTarget;

                camera.zoom = zoomCurrent;
                camera.update?.();
                requestAnimationFrame(loop);
            }
            requestAnimationFrame(loop);
        }

        function setupInput() {
            window.addEventListener('wheel', (e) => {
                const step = e.altKey ? 0.1 : e.shiftKey ? 1.0 : 0.2;
                zoomTarget = Math.max(0.1, Math.min(5.0, zoomTarget + (e.deltaY > 0 ? step : -step)));
                e.preventDefault();
            }, { passive: false });

            document.addEventListener('keydown', (e) => {
                if (e.key.toLowerCase() === 'r') {
                    zoomTarget = 1.0;
                    console.log('[ZoomMod] Zoom reset');
                }
            });
        }

        function waitForCamera() {
            const interval = setInterval(() => {
                const controller = findCameraController();
                if (controller && controller.camera && typeof controller.camera.zoom === 'number') {
                    clearInterval(interval);
                    controller.updateZoom = false;
                    setupInput();
                    applySmoothZoom(controller.camera);
                    console.log('[ZoomMod] Zoom enabled');
                }
            }, 1000);
        }

        waitForCamera();
    } + ')();';

    document.body.appendChild(script);
})();
长期地址
遇到问题?请前往 GitHub 提 Issues。