Greasy Fork

Survev.io Anniversary Edition

Give survev.io better experience

目前为 2024-11-03 提交的版本。查看 最新版本

// ==UserScript==
// @name         Survev.io Anniversary Edition
// @namespace    http://tampermonkey.net/
// @license      MIT
// @version      0.1.0
// @description  Give survev.io better experience
// @author       chess5321, .junakochitloli, Asultra, Samer Kizi, #NARS & many OG authors (Discord#)
// @match        https://survev.io/
// @icon         https://cdn.discordapp.com/icons/947128006030282792/c80363d8d6dea22ef392c4d325e0c9f4.png?size=64
// @grant        GM_addStyle
// ==/UserScript==

// CSS
(function() {
    'use strict';
function GM_addStyle(cssStr){

    var n = document.createElement('style');
    n.type = "text/css";
    n.innerHTML = cssStr;
    document.getElementsByTagName('head')[0].appendChild(n);
}
//bg
    document.addEventListener('mousemove', (e) => {
    const x = (e.clientX / window.innerWidth) * 100;
    const y = (e.clientY / window.innerHeight) * 100;

    const parallax = document.getElementById('background');
    parallax.style.transform = `translate(-${x / 10}%, -${y / 10}%)`;
});

// main
GM_addStyle(`
#background {
  width: 111.090775988% !important;
  height: 111.090775988% !important;
}
#start-menu {
  margin-left: 330px;
  padding-top: 20px;
  padding-right: 20px;
  padding-bottom: 12px;
  padding-left: 20px;
}
#team-menu, #team-mobile-link {
  margin-left: 167.5px;
}
#btn-team-mobile-link-leave {
  margin-left: 205.5px;
  position: unset;
}
#social-share-block {
  pointer-events: none !important;
  opacity: 0 !important;
}
#btn-help, #start-help, .ui-emote-hl {
  display: none !important;
}
#news-block {
  opacity: 0 !important;
  transition: 0.3s !important;
}
#news-block:hover {
  opacity: 1 !important;
}
#start-bottom-right {
  transition: 0.3s !important;
  opacity: 0 !important;
}
#start-bottom-right:hover {
  opacity: 1 !important;
}
#btn-customize, .btn-team-option, .btn-start-option, .btn-game-menu, #ui-modal-keybind-list>.ui-keybind-container>.btn-game-menu, #ui-modal-keybind-footer>.btn-darken, #ui-stats-options>.btn-darken, #ui-spectate-buttons, #btn-team-leave, #btn-team-mobile-link-leave {
    background-color: #35363A;
    border-bottom: 2px solid #202124;
    box-shadow: inset 0 -2px #202124;
}
.player-name-input, #team-link-input, .name-self, #keybind-code-input {
    background-color: #35363A;
    color: #FFD700;
}
#btn-game-tabs>.btn-game-container>.btn-game-menu-selected, .customize-list-item-selected, .btn-hollow-selected, #color-picker-hex {
    border-color: #202124 !important;
}
.btn-hollow, #btn-game-tabs>.btn-game-container>.btn-game-menu {
    border-color: #3a3a3a !important;
}
.menu-option:focus, .menu-option.focus {
    box-shadow: 0 0 1px 1px #202124;
}
.modal-header, .modal-footer, #ui-modal-keybind-header.modal-header, #ui-modal-keybind-footer.modal-footer, .ui-keybind-container>.btn-keybind-desc-selected, #modal-customize-header.modal-header, #modal-customize-footer.modal-footer, .slider, .slider::-webkit-slider-thumb {
    background-color: #202124;
}
#modal-settings-body.modal-body, #ui-modal-keybind-body.modal-body, #modal-customize-body.modal-body, .modal-customize-cat-selected, .modal-content-right {
    background-color: #35363A !important;
}
.modal-customize-cat-connect {
    background-color: #998000 !important;
}
#background {
    animation: change 70s infinite ease-in-out;
}
@keyframes change{
    0%,2.4%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622154923315260/10.png?ex=6728c8eb&is=6727776b&hm=f123f8d7a4d6510a901cdeaad360d651451dcca980bcb397495f7c7f673024e3&);
    }
    4.8%,9.6%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622158765293628/5.png?ex=6728c8ec&is=6727776c&hm=ee45ec98af38e03b052a4695ed03e3005214d1dfb2605bc265e7f251bd6bc59f&);
    }
    12%,16.8%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622159541243994/6.png?ex=6728c8ec&is=6727776c&hm=302e7328a557c7984f9b8cc9051cb545e896e1aeba3049796f7b7ab18a01cc08&);
    }
    19.2%,24%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622157934825562/14.png?ex=6728c8ec&is=6727776c&hm=d6f03baf976302d5bd222f1c8a2fdca17e12784272a55577a38860937a7853af&);
    }
    26.4%,31.2%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622157032919162/13.png?ex=6728c8eb&is=6727776b&hm=b51c717adfd7bdd7ab4ccde8296c804fdd23458a7973cd405296ee649eba7157&);
    }
    33.6%,38.4%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622156357894195/12.png?ex=6728c8eb&is=6727776b&hm=1a8aea5049ef729fb6244e296e5c1f4471e2e8daf48de92474a3b74708806f84&);
    }
    40.8%,45.6%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622155716034601/11.png?ex=6728c8eb&is=6727776b&hm=5d20d401dc8fe4b8e265c8a9ea1ad2116b8179cdfa78fd026d14130b45837c36&);
    }
    48%,52.8%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622154369531995/9.png?ex=6728c8eb&is=6727776b&hm=5f47e2515d1084cc58093a2c97c57e3bc59858fe0b0037617922ea097358cabf&);
    }
    55.2%,60%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622153665020015/8.png?ex=6728c8ea&is=6727776a&hm=d1e8599335aaae18a920a539096b4c37b8e62df5787464bdac02f294e4e519b2&);
    }
    62.4%,67.2%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622152893272074/7.png?ex=6728c8ea&is=6727776a&hm=c25a36ddc4c619078f190397c21bd15502dd70f4463929a0abe94ac06513c912&);
    }
    69.6%,74.4%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622216474722324/2.png?ex=6728c8f9&is=67277779&hm=4c6f9b6f7f34639d534dd99cd0ebd086d5570d15122768c0586b5ba456f32c7f&);
    }
    76.8%,81.6%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622214234964059/3.png?ex=6728c8f9&is=67277779&hm=d5dbdab054130a36c43296e27953876a4b6256a274d929867f99c5de6f8fc938&);
    }
    84%,88.8%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622215090470972/4.png?ex=6728c8f9&is=67277779&hm=89858f74444499df2722968ad2a55a68cf58b033b233a701fb39a99e0fd1c915&);
    }
    91.2%,96%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622215736655953/1.png?ex=6728c8f9&is=67277779&hm=a74ea5c99585a784b07fc6dd5eadf9a02d11fc97a47b11e56eb0b31c333a59e2&);
    }
    98.4%,100%
    {
        background-image: url(https://cdn.discordapp.com/attachments/1273262860964859994/1302622154923315260/10.png?ex=6728c8eb&is=6727776b&hm=f123f8d7a4d6510a901cdeaad360d651451dcca980bcb397495f7c7f673024e3&);
    }
}
`);
})();

//Counters
(function() {
    'use strict';

let MAX = 300; //frame rate you desire
requestAnimationFrame = (a) => setTimeout(a, 1e3/MAX)
})();

(function() {
    let fps = 0;
    let ping = 0;
    let lastLoop = performance.now();
    let frameCount = 0;

    // Create FPS display
    const fpsDisplay = document.createElement('div');
    fpsDisplay.style.position = 'absolute';
    fpsDisplay.style.top = '50%'; // Middle of the screen vertically
    fpsDisplay.style.left = '10px'; // Left side of the screen
    fpsDisplay.style.transform = 'translateY(-50%)'; // Centers it vertically based on the top position
    fpsDisplay.style.color = 'white';
    fpsDisplay.style.fontSize = '14px'; // Smaller font size
    fpsDisplay.style.fontFamily = '"roboto condensed", sans-serif'; // Regular Arial font without bold
    fpsDisplay.style.textShadow = '1px 1px 2px black'; // Slight shadow for visibility
    fpsDisplay.style.backgroundColor = 'rgba(0, 0, 0, 0.3)';
    fpsDisplay.style.padding = '3px 5px'; // Padding around the text
    fpsDisplay.style.borderRadius = '5px'; // Slightly rounded corners for styling
    fpsDisplay.style.zIndex = '10000'; // Ensure the FPS display is on top
    fpsDisplay.innerHTML = `0 FPS`;
    document.body.appendChild(fpsDisplay);

    function updateCounters() {
        const currentLoop = performance.now();
        const delta = currentLoop - lastLoop;

        // Update FPS
        frameCount++;
        if (delta >= 1000) {
            fps = frameCount;
            frameCount = 0;
            lastLoop = currentLoop;
            fpsDisplay.innerHTML = `${fps} FPS`;
        }

        // Request the next frame
        requestAnimationFrame(updateCounters);
    }

    // Start the counters
    updateCounters();
})();

(function() {
    'use strict';
    var lastHP = 0
    var health = document.createElement("span");
    health.style = "display:block;position:fixed;z-index: 2;margin:6px 0 0 0;right: 15px;mix-blend-mode: difference;font-weight: bold;font-size:large;";
    document.querySelector("#ui-health-container").appendChild(health);

    var adr = document.createElement("span");
    adr.style = "display:block;position:fixed;z-index: 2;margin:6px 0 0 0;left: 15px;mix-blend-mode: difference;font-weight: bold;font-size: large;";
    document.querySelector("#ui-health-container").appendChild(adr);

    setInterval(function(){
        var hp = document.getElementById("ui-health-actual").style.width.slice(0,-1)
        if(lastHP !== hp){
            lastHP = hp
            health.innerHTML = Number.parseFloat(hp).toFixed(1)
        }
        var boost0 = document.getElementById("ui-boost-counter-0").querySelector(".ui-bar-inner").style.width.slice(0,-1),
            boost1 = document.getElementById("ui-boost-counter-1").querySelector(".ui-bar-inner").style.width.slice(0,-1),
            boost2 = document.getElementById("ui-boost-counter-2").querySelector(".ui-bar-inner").style.width.slice(0,-1),
            boost3 = document.getElementById("ui-boost-counter-3").querySelector(".ui-bar-inner").style.width.slice(0,-1),
            adr0 = boost0*25/100 + boost1*25/100 + boost2*37.5/100 + boost3*12.5/100
        adr.innerHTML = Math.round(adr0)
    })
})();

// Make things easy
function delAds(eID){
    if (document.getElementById(eID)){
        document.getElementById(eID).remove();
    }
}

setInterval(function() {
    var adsA=document.getElementsByClassName("ad-block-leaderboard-bottom")[0];
    delAds("start-top-left");
    delAds("leaderboard-front");
    delAds("start-bottom-left");
    delAds("adunit");
    delAds("ad-block-left");
    delAds("ui-stats-ad-container-desktop");
    delAds("surviv-io_728x90");
    delAds("social-share-block-wrapper");
    if(adsA){
        adsA.remove();
    }
},100);