Cryzen.io

Todos em um: Models, Anti-recoil, ESP, Rewards, Performance

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

You will need to install an extension such as Tampermonkey to install this script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         Cryzen.io
// @description  Todos em um: Models, Anti-recoil, ESP, Rewards, Performance
// @version      1.0.2
// @match        https://cryzen.io/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=cryzen.io
// @author       _PeDeCoca
// @grant        none
// @run-at       document-start
// @license      MIT
// @namespace PeDeCoca
// ==/UserScript==

// Utility functions
const { log, debug, warn, error } = console;

// Model visibility enhancement
const srcset = Object.getOwnPropertyDescriptor(Image.prototype, 'src').set;
function getSqareDataURL(width, height, color) {
    const canvas = document.createElement('canvas');
    canvas.width = width;
    canvas.height = height;
    const context = canvas.getContext('2d');
    context.fillStyle = color;
    context.fillRect(0, 0, width, height);
    return canvas.toDataURL();
}

Object.defineProperty(Image.prototype, 'src', {
    set(value) {
        this._src = value;
        if (typeof value != 'string') return srcset.call(this, value);
        if (value.includes('colorMap')) {
            if (value.toLowerCase().includes('red')) {
                value = getSqareDataURL(1000, 1000, '#FF7373');
            } else if (value.toLowerCase().includes('blue')) {
                value = getSqareDataURL(1000, 1000, '#00FFFF');
            } else {
                value = getSqareDataURL(1000, 1000, '#73FF73');
            }
        }
        if (value.includes('map-')) {
            value = getSqareDataURL(4096, 2048, '#AAAAAA');
        }
        srcset.call(this, value);
    },
    get() { return this._src; }
});

// No spread and anti-recoil
const _random = Math.random;
Object.defineProperty(Math, 'random', {
    set(value) { _random = value; },
    get() {
        try {
            throw new Error();
        } catch (error) {
            if (error.stack.includes('shoot')) return _=>.5;
        }
        return _random;
    }
});

// Player ESP with wireframe
Object.defineProperty(Object.prototype, 'material', {
    get() { return this._material; },
    set(v) {
        if (this.type === 'SkinnedMesh' && this?.skeleton) {
            Object.defineProperties(v, {
                'depthTest': {
                    get() { return false; },
                    set(v) {},
                },
                'transparent': {
                    get() { return true; },
                    set(v) {},
                }
            });
            v.wireframe = true;
            v.opacity = 1;
        }
        this._material = v;
    }
});

// Add tracking system
function setupModelTracking() {
    const playerTracker = {
        enabled: false,
        players: new Set(),
        nearestPlayer: null,
        highlightColor: new Color(1, 0, 0) // vermelho
    };

    // Observer para detectar jogadores
    const observer = new MutationObserver((mutations) => {
        mutations.forEach(mutation => {
            mutation.addedNodes.forEach(node => {
                if (node.classList?.contains('player-model')) {
                    playerTracker.players.add(node);
                }
            });
        });
    });

    // Adicionar toggle no menu
    function addTrackingToggle() {
        const container = document.querySelector('.toggle-container');
        const label = document.createElement('label');
        label.innerHTML = `
            <input type="checkbox" id="toggle-tracking"> Target Track
        `;
        container.appendChild(label);

        document.getElementById('toggle-tracking').onchange = (e) => {
            playerTracker.enabled = e.target.checked;
            if (!e.target.checked) {
                // Limpar highlights quando desativado
                playerTracker.players.forEach(player => {
                    if (player?.material) {
                        player.material.emissive = new Color(0, 0, 0);
                    }
                });
            }
        };
    }

    // Update loop melhorado
    function trackerLoop() {
        if (!playerTracker.enabled) return;

        const center = {
            x: window.innerWidth / 2,
            y: window.innerHeight / 2
        };

        let closest = null;
        let minDistance = Infinity;

        // Limpar highlight anterior
        if (playerTracker.nearestPlayer?.material) {
            playerTracker.nearestPlayer.material.emissive = new Color(0, 0, 0);
        }

        // Encontrar jogador mais próximo
        document.querySelectorAll('.player-model').forEach(player => {
            if (!player.isConnected) return;

            const rect = player.getBoundingClientRect();
            if (!rect.width || !rect.height) return;

            const distance = Math.hypot(
                center.x - (rect.left + rect.width / 2),
                center.y - (rect.top + rect.height / 2)
            );

            if (distance < minDistance) {
                minDistance = distance;
                closest = player;
            }
        });

        // Destacar novo alvo
        if (closest?.material) {
            closest.material.emissive = playerTracker.highlightColor;
            playerTracker.nearestPlayer = closest;

            if (config.debug) {
                console.log('[Target Track] Found:', {
                    distance: minDistance,
                    element: closest
                });
            }
        }

        requestAnimationFrame(trackerLoop);
    }

    // Inicializar
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
    addTrackingToggle();
    trackerLoop();

    return playerTracker;
}

// Free rewards system
function skipRewardedBreak() {
    return new Promise(resolve => resolve(true));
}

Object.defineProperties(Object.prototype, {
    'rewardedBreak': {
        get() { return skipRewardedBreak.bind(this); },
        set() {},
        enumerable: false,
    },
    'gameanalytics': {
        get() {
            return {
                GameAnalytics: {
                    addAdEvent: () => {},
                }
                // ...existing gameanalytics mock...
            };
        },
        set(v) {},
        enumerable: false,
    }
});

// Enhanced menu system
(function() {
    // Add config object with blocked domains
    const config = {
        active: true,
        autoReward: true,
        debug: true,
        noSpread: true, // Ativo por padrão
        esp: true, // Ativo por padrão
        blockedDomains: new Set([
            'poki.com',
            'poki-gdn.com',
            'google-analytics.com',
            'doubleclick.net',
            'adservice.google.com',
            'analytics.google.com',
            'pagead2.googlesyndication.com',
            'googleads.g.doubleclick.net',
            'partner.googleadservices.com',
            'tpc.googlesyndication.com',
            'google.com/pagead',
            'google.com/adsense',
            'advertising.com',
            'adnxs.com',
            'adsense.google.com'
        ])
    };

    // Add ad blocking functions
    const originalFetch = window.fetch;
    window.fetch = async function(...args) {
        try {
            const url = new URL(args[0]);
            if (config.blockedDomains.has(url.hostname)) {
                if (config.debug) console.log('[AdBlock] Blocked fetch:', url.hostname);
                return new Response('', { status: 200 });
            }
        } catch {}
        return originalFetch.apply(this, arguments);
    };

    const originalXHR = window.XMLHttpRequest;
    window.XMLHttpRequest = function() {
        const xhr = new originalXHR();
        const originalOpen = xhr.open;
        xhr.open = function(method, url) {
            try {
                const urlObj = new URL(url);
                if (config.blockedDomains.has(urlObj.hostname)) {
                    if (config.debug) console.log('[AdBlock] Blocked XHR:', urlObj.hostname);
                    return;
                }
            } catch {}
            return originalOpen.apply(this, arguments);
        };
        return xhr;
    };

    // Block ads on document level
    function removeAdsElements() {
        const adSelectors = [
            'ins.adsbygoogle',
            'div[id*="google_ads"]',
            'div[id*="advertisement"]',
            'div[class*="ad-"]',
            'div[class*="ads-"]',
            'iframe[src*="googlead"]',
            'iframe[src*="doubleclick"]',
            'div[aria-label*="Advertisement"]'
        ];

        const observer = new MutationObserver((mutations) => {
            for (const selector of adSelectors) {
                document.querySelectorAll(selector).forEach(ad => {
                    ad.remove();
                    if (config.debug) console.log('[AdBlock] Removed ad element:', selector);
                });
            }
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
    }

    // Override window.open to block popup ads
    const originalWindowOpen = window.open;
    window.open = function(url, ...args) {
        try {
            const urlObj = new URL(url);
            if (config.blockedDomains.has(urlObj.hostname)) {
                if (config.debug) console.log('[AdBlock] Blocked popup:', url);
                return null;
            }
        } catch {}
        return originalWindowOpen.apply(this, arguments);
    };

    const styles = `
        #hack-menu {
            position: fixed;
            top: 50px;
            left: 10px;
            background: rgba(0,0,0,0.8);
            color: #00ff00;
            padding: 15px;
            border-radius: 10px;
            z-index: 9999;
            width: 200px;
            font-family: Arial, sans-serif;
            border: 2px solid #00ff00;
            cursor: move;
            animation: rainbow 2s infinite;
            user-select: none;
        }
        #hack-menu h3 {
            text-align: center;
            margin-bottom: 10px;
            color: #00ff00;
            display: flex;
            justify-content: center;
            align-items: center;
            position: relative;
        }
        .minimize-btn {
            position: absolute;
            top: 5px;
            right: 5px;
            background: none;
            border: none;
            color: #00ff00;
            cursor: pointer;
            font-size: 16px;
            padding: 5px;
        }
        .toggle-container {
            display: flex;
            flex-direction: column;
            gap: 10px;
            margin: 15px 0;
        }
        .toggle-container label {
            display: flex;
            align-items: center;
            gap: 8px;
            color: #00ff00;
            cursor: pointer;
        }
        .button-container {
            display: flex;
            flex-direction: column;
            gap: 5px;
        }
        .control-btn {
            background-color: #333;
            border: 1px solid #00ff00;
            color: #00ff00;
            padding: 8px;
            cursor: pointer;
            border-radius: 5px;
            width: 100%;
        }
        .control-btn:hover {
            background-color: #444;
        }
        @keyframes rainbow {
            0% { border-color: red; }
            33% { border-color: #00ff00; }
            66% { border-color: blue; }
            100% { border-color: red; }
        }
        .floating-icon {
            position: fixed;
            top: 50px;
            left: 10px;
            width: 40px;
            height: 40px;
            background: rgba(0,0,0,0);
            border-radius: 50%;
            display: none;
            justify-content: center;
            align-items: center;
            cursor: pointer;
            z-index: 9999;
            border: 2px solid #00ff00;
            animation: rainbow 2s infinite;
        }
        .discord-icon {
            width: 50px;
            height: 50px;
            margin-left: 10px;
            transition: transform 0.2s;
        }
        .discord-icon:hover {
            transform: scale(1.2);
        }
    `;

    function createMenu() {
        const menu = document.createElement('div');
        menu.id = 'hack-menu';
        menu.innerHTML = `
            <button class="minimize-btn">−</button>
            <h3>
                <span>_PeDeCoca</span>
                <a href="https://discord.gg/RWjQcR6f5T" target="_blank">
                    <img src="https://img.icons8.com/?size=100&id=61604&format=png&color=000000" alt="Discord" class="discord-icon">
                </a>
            </h3>

            <div class="toggle-container">
                <label>
                    <input type="checkbox" id="toggle-esp" checked> ESP Vision
                </label>
                <label>
                    <input type="checkbox" id="toggle-nospread" checked> No Spread
                </label>
                <label>
                    <input type="checkbox" id="toggle-rewards" checked> Auto Rewards
                </label>
            </div>

            <div class="button-container">
                <button class="control-btn" id="quality-high">High Graphics</button>
                <button class="control-btn" id="quality-medium">Medium Graphics</button>
                <button class="control-btn" id="quality-low">Low Graphics</button>
            </div>

            <button id="reset-all" class="control-btn" style="margin-top: 15px">Reset All</button>
        `;

        const floatingIcon = document.createElement('div');
        floatingIcon.className = 'floating-icon';
        floatingIcon.innerHTML = '👹';

        document.body.appendChild(menu);
        document.body.appendChild(floatingIcon);

        setupControls();
        makeMenuDraggable(menu, floatingIcon);
    }

    // Add graphics quality functions
    function setGraphicsQuality(quality) {
        switch(quality) {
            case 'High':
                resetGraphics();
                break;
            case 'Medium':
                applyMediumGraphics();
                break;
            case 'Low':
                applyLowGraphics();
                break;
        }
    }

    function resetGraphics() {
        document.querySelectorAll('.map-element').forEach(element => {
            element.style.removeProperty('backgroundColor');
            element.style.removeProperty('opacity');
            element.style.removeProperty('border');
        });
        // Reset skybox and other elements
        const skybox = document.querySelector('.skybox');
        if (skybox) skybox.style.display = 'block';
    }

    function applyMediumGraphics() {
        document.querySelectorAll('.map-element').forEach(element => {
            element.style.opacity = '0.8';
            element.style.backgroundColor = '#444';
        });
    }

    function applyLowGraphics() {
        // Remove skybox
        const skybox = document.querySelector('.skybox');
        if (skybox) skybox.style.display = 'none';

        // Simplify map elements
        document.querySelectorAll('.map-element').forEach(element => {
            element.style.backgroundColor = 'gray';
            element.style.opacity = '0.5';
            element.style.border = 'none';
        });
    }

    // Remover antigas tentativas de controle de cor e opacidade no setupControls
    function setupControls() {
        document.getElementById('toggle-esp').onchange = (e) => {
            const enabled = e.target.checked;
            // Toggle ESP visibility with wireframe
            document.querySelectorAll('.player-model').forEach(player => {
                if (player?.material) {
                    player.material.depthTest = !enabled;
                    player.material.transparent = enabled;
                    player.material.wireframe = enabled;
                    player.material.opacity = 1;
                }
            });
        };

        document.getElementById('toggle-nospread').onchange = (e) => {
            // Toggle no spread functionality
            config.noSpread = e.target.checked;
        };

        document.getElementById('toggle-rewards').onchange = (e) => {
            config.autoReward = e.target.checked;
        };

        // Graphics quality buttons
        document.getElementById('quality-high').onclick = () => setGraphicsQuality('High');
        document.getElementById('quality-medium').onclick = () => setGraphicsQuality('Medium');
        document.getElementById('quality-low').onclick = () => setGraphicsQuality('Low');

        // Reset button with proper graphics reset
        document.getElementById('reset-all').onclick = () => {
            // Reset all toggles
            document.querySelectorAll('input[type="checkbox"]').forEach(cb => cb.checked = false);

            // Reset configurations
            config.autoReward = false;
            config.noSpread = false;

            // Reset graphics to high quality
            setGraphicsQuality('High');

            // Additional resets if needed
            resetGraphics();
        };

        // Minimize button
        const menu = document.getElementById('hack-menu');
        const floatingIcon = document.querySelector('.floating-icon');
        const minimizeBtn = menu.querySelector('.minimize-btn');

        minimizeBtn.onclick = () => {
            menu.style.display = 'none';
            floatingIcon.style.display = 'flex';
        };

        floatingIcon.onclick = () => {
            menu.style.display = 'block';
            floatingIcon.style.display = 'none';
        };
    }

    function makeMenuDraggable(menu, floatingIcon) {
        [menu, floatingIcon].forEach(element => {
            let isDragging = false;
            let currentX;
            let currentY;
            let initialX;
            let initialY;

            element.addEventListener('mousedown', (e) => {
                if (e.target.tagName === 'BUTTON' || e.target.tagName === 'INPUT') return;

                isDragging = true;
                initialX = e.clientX - element.offsetLeft;
                initialY = e.clientY - element.offsetTop;
            });

            document.addEventListener('mousemove', (e) => {
                if (!isDragging) return;

                e.preventDefault();
                currentX = e.clientX - initialX;
                currentY = e.clientY - initialY;

                element.style.left = `${currentX}px`;
                element.style.top = `${currentY}px`;
            });

            document.addEventListener('mouseup', () => {
                isDragging = false;
            });
        });
    }

    // Initialize everything
    function initialize() {
        const styleSheet = document.createElement('style');
        styleSheet.textContent = styles + `
            .adsbygoogle { display: none !important; }
            [class*="advertisement"] { display: none !important; }
            [id*="google_ads"] { display: none !important; }
        `;
        document.head.appendChild(styleSheet);

        createMenu();
        removeAdsElements();

        // Inicializar tudo em ordem correta
        window.playerTracker = setupModelTracking();

        // Ativar todas as funcionalidades por padrão
        setTimeout(() => {
            // Ativar ESP
            document.querySelectorAll('.player-model').forEach(player => {
                if (player?.material) {
                    player.material.depthTest = false;
                    player.material.transparent = true;
                }
            });

            // Ativar No Spread
            config.noSpread = true;

            // Ativar Auto Rewards
            config.autoReward = true;

            // Aplicar qualidade gráfica baixa por padrão
            setGraphicsQuality('Low');
        }, 1000); // Pequeno delay para garantir que tudo foi carregado

        // Adicionar sistema de tracking
        setupModelTracking();

        // Inicializar tracking system
        const playerTracker = setupModelTracking();
        window.playerTracker = playerTracker; // Para debug
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initialize);
    } else {
        initialize();
    }
})();

// ...rest of existing code...