Greasy Fork 支持简体中文。

MZ Script

Snay.io with lots of features to come!

// ==UserScript==
// @name         MZ Script
// @namespace    http://tampermonkey.net/
// @version      1.0.1
// @description  Snay.io with lots of features to come!
// @author       Moka X Zaro
// @match        https://www.snay.io/
// @icon         https://i.postimg.cc/sD65X7t3/black-calathea-lutea-patterned-background-53876-144275-2.png
// @grant        GM_addStyle
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';
console.log('MZ Script is succesfully running.');
GM_addStyle (`

#ReplaySaveBtn {
  z-index: 19;
  top: 15.5vw;
  width: 5vw;
  height: 5vw;
  border-style: none;
  background: url(https://i.postimg.cc/9XBTszJL/chat-btn-1.png);
  background-size: 5vw 5vw;
  background-repeat: no-repeat;
  position: fixed;
  right: 6vw;
  opacity: 1;
}

.window-body {
    padding: 0 0 4vw 0;
    margin: 0;
    padding-left: 0px;
    padding-top: 1vw;
    overflow-x: hidden;
    overflow-y: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    scrollbar-width: thin;
    width: 100%;
    background-color: transparent;
    scrollbar-color: #ffffff var(--scrollbar-track-color);
}

#modmenubtn {
  z-index: 19;
  top: 15.5vw;
  width: 5vw;
  height: 5vw;
  border-style: none;

  background: url(https://i.postimg.cc/Vvt6FGGG/modmenu-btn.png);
  background-size: 5vw 5vw;
  background-repeat: no-repeat;
  position: fixed;
  right: 0.5vw;
  opacity: 1;
}
#modmenuclosebtn {
    top: 15vw;
    right: 2vw;
}

#modmenu {
    top: 15vw;
    border: 2px;
    border-radius: 9px;
    border-style: solid;
    border-color: white;
    background-color: rgba(0,0,0,.7);
    position: absolute;
    right: 1vw
}

modmenutitle {
    margin-left: 38px;
}

modmenu input {
    height: 0.6vw;
}

#badge-gallery-header {
    background-color: #000;
}
#gallery-content {
    background: black;
}

#season-gallery-header {
    background: black;
}

#settings-subtitle {
    color: white;
}

#window-header {
    background-color: black;
}

.swal-modal {
    background-color: black;
    border: 3px solid white;
}
.swal-title {
    color: white;
}
.swal-text {
    color: white;
}

#players-header {
    background-color: black;
}

#quests-body {
    background: linear-gradient(90deg, red, #101010);
}

#quests-header {
    background: black;
}

.window-header {
    background: black;
}

#replays-header {
    background: black;
}

#overlays,#connecting {
    background-image: url("https://i.postimg.cc/mZPXK8zv/google-pixel-8-dark-3840x2160-14308.jpg");
}

#leaderboards-header {
    background: black;
}

.free-rewards .reward-tag {
    background: #000;
    border-radius: 0 0 5vh 5vh;
}
.vip-rewards .reward-tag {
    background: #000;
    border-radius: 5vh 5vh 0 0;
}


#login-content {
    background: #000;
}
#login form span {
    background-color: #ffffff;
    border-radius: 10px 0px 0px 10px;
}
#login form input[type=email],input[type=password],input[type=text] {
    background-color: #ffffff;
    border-radius: 0 10px 10px 0;
    margin-bottom: 1.3em;
    padding: 0 18px;
}

#login form input[type=submit]:hover {
    background-color: #ff4949
}

#login form input[type=submit] {
    background-color: #e91111;
    border: 2px white solid;
    border-radius: 3px;
    -moz-border-radius: 3px;
    -webkit-border-radius: 25px;
    color: #eee;
    font-weight: 700;
    margin-bottom: 10px;
    text-transform: uppercase;
    width: 200px;
    margin-left: 40px;
}

#replays-content {
    background: #000;
}

#chatBtn {
  opacity: 1;
  background: url(https://i.postimg.cc/G90Rhbjz/chat-btn.png);
  width: 5vw;
  height: 5vw;
  background-size: 100% 100%;
  border-style: none;
}

#ShowSpectPlayersBtn {
  opacity: 1;
  color: white;
  background: url(https://i.postimg.cc/T3CstRWS/Ingame-Spectate-Players-Btn-1.png);
  width: 5vw;
  height: 5vw;
  background-size: 100% 100%;
  border-style: none;
}
#leaveBtn {
  opacity: 1;
  left: 1vw;
  background: url('https://i.postimg.cc/6Q68Nhqq/leave-btn.png');
}

#lead-btn {
    background: url(https://i.postimg.cc/FKj1cn6T/leaderboard1.png);
    right: 1vw;
}

#ClipBtn {
  position: absolute;
  width: 6vw;
  height: 6vw;
  top: 1.5vw;
  left: 9vw;
  opacity: 1;
  z-index: 99;
  background: url(https://i.postimg.cc/MKQwvfND/chat-btn-2.png);
  background-size: 100% 100%;
  border-style: none;
}

#treasure-btn {
  background-image: url(https://i.postimg.cc/FzcJWsCQ/leaderboard1-2.png);
}

#badges-btn {
  background-image: url(https://i.postimg.cc/fb9Z0tVZ/2583264-1.png);
}

#xp-btn {
  background-image: url(https://i.postimg.cc/YqzTZNWh/8349941-1-2.png);
}

#mass-btn {
  background-image: url(https://i.postimg.cc/hGvF9Jhh/8349941-2.png);
}

#play-btn {
  background-image: url(https://i.postimg.cc/0NYp0Tbs/Untitled-2.png);
}
#spectate-btn {
  background-image: url(https://i.postimg.cc/mkyFWZCf/Untitled.png);
}

#settings-btn {
  background-image: url(https://i.postimg.cc/brVptKjS/Untitled-1.png);
}

#leaveBtn,
#pause-btn,
#lead-btn {
  top: 1vw;
  width: 8vw;
  height: 8vw;
  background-size: 100% 100%;
  border-style: none;
}

#profile-btn {
  background-image: url(https://i.postimg.cc/tC39QfsC/Profile-1.png);
}

#emojiBtn {
  opacity: 1;
  color: white;
  background: url(https://i.postimg.cc/ZqYByvFm/modmenu-btn-1.png);
  width: 5vw;
  height: 5vw;
  background-size: 100% 100%;
  border-style: none;
}

#seasons-btn {
  background-image: url(https://i.postimg.cc/RVyKyWnz/seasons-btn-2.png);
}

#shop-btn {
  background-image: url(https://i.postimg.cc/RCPc1sSh/support-btn-2.png);
}

#support-btn {
  background-image: url(https://i.postimg.cc/vBh5NX5P/support-btn-1.png);
}

#signout-btn {
  background-image: url(https://i.postimg.cc/7PpSQCzr/Signout-1.png);
  background-color: rgba(0, 0, 0, 0);
  background-size: 110% 110%;
  background-position: 50% 50%;
  overflow: hidden;

}

#signin-btn {
  background-image: url(https://i.postimg.cc/XYWd4Tx2/Untitled.png);
}

#discord-btn {
  background-image: url(https://i.postimg.cc/DyPmdmdg/Main-Button-Discord-1-2.png);
}

#leaderboards-btn {
  background-image: url(https://i.postimg.cc/8kr6W10K/Main-Button-Top-Players-1.png);
}

#players-btn {
  background-image: url(https://i.postimg.cc/xCL9fF6R/Main-Button-Discord-3.png);
}


#fullScreenBtn {
  position: absolute;
  width: 5vw;
  height: 5vw;
  top: 2.2vw;
  left: 3vw;
  opacity: 1;
  z-index: 99;
  background: url(https://i.postimg.cc/prjBrcKy/54431-1.png);
  background-size: 100% 100%;
  border-style: none;
}

#leaderboard {
    padding-left: 3vmin;
    padding-right: 3vmin;
    padding-bottom: 3vmin;
    width: 25vmin;
    height: 30vmin;
    margin: 0;
    overflow: hidden;
    font-family: sans-serif;
    font-weight: bold;
    position: absolute;
    top: 1vh;
    right: 1vmin;
    z-index: 1;
    color: #eee;
    background-image: url(https://i.postimg.cc/0NDfgfcp/Leaderboard-bg-1.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

.container {
    margin: 0 auto;
    max-width: 300px;
    width: 100%;
}
.container {
    display: flex;
    justify-content: center;
}

#community-content {
    background: linear-gradient(135deg,#000000,#000000);
    border-radius: 2vw;
    max-width: 80%;
    padding: 1vw
}

#leaderboards {
    background-image: none !important;
}


#community {
    background-image: none !important;
}

#tiles-gallery {
    background-image: none !important;
}

#seasons {
    background-image: none !important;
}

#store {
    background-image: none !important;
}

#settings {
    background-image: none !important;
}

#spinner {
    background-image: none !important;
}

#servers {
    background-image: none !important;
}

#emoji-gallery {
    background-image: none !important;
}

#gallery {
    background-image: none !important;
}

#replays {
    background-image: none !important;
}

#players {
    background-image: none !important;
}

#badge-gallery {
    background-image: none !important;
}

#account {
    background-image: none !important;
}

.selectedSkin {
border-color: #4CAF50;
}

.squareBadge:hover {
    border-color: #1a411c;
}
`)

/* Keybinds */
document.addEventListener("keydown", function(event) {
    if (event.key === "m" || event.key === "M") {
        const modMenuBtn = document.getElementById("modmenubtn");
        if (modMenuBtn) {
            modMenuBtn.click();
        }
    }
    if (event.key === "l" || event.key === "L") {
        const leaderboard = document.getElementById("leaderboard");
        if (leaderboard) {
            leaderboard.click();
        }
    }
    if (event.key === "l" || event.key === "L") {
        const leaderboard = document.getElementById("lead-btn");
        if (leaderboard) {
            leaderboard.click();
        }
    }
    if (event.key === "o" || event.key === "O") {
        const leaderboard = document.getElementById("emojiBtn");
        if (leaderboard) {
            leaderboard.click();
        }
    }

});

/* ~~~~~~~~~~~~~~~SCRIPT CREDITS~~~~~~~~~~~~~~~~ */
window.onload = function() {
    // CSS styles
    const style = document.createElement("style");
    style.textContent = `
        .settings-subtitle {
            margin: 1em;
            padding: 0px;
            font-size: 2em;
        }
        .custom-hr {
            color: rgb(99, 99, 99);
            height: 0.1vw;
            background-color: rgb(99, 99, 99);
            width: 58em;
            margin-bottom: 1vw;
            margin-left: 2em;
        }
        .custom-li {
            margin-right: 0.5em;
            margin-left: 0.5em;
            margin-bottom: 0.5em;
            padding: 0px;
            color: rgb(99, 99, 99);
            background-color: rgb(242, 242, 242);
            border: 0.05em solid rgb(211, 211, 211);
            border-radius: 0.5em;
            display: flex;
            align-items: center;
            width: 30em;
            height: 3em;
            font-size: 2em;
        }
        .custom-li img {
            border-radius: 100%;
            margin-right: 0.5em;
            margin-left: 0.5em;
            width: 2.5em;
            height: 2.5em;
        }
        .custom-li span {
            width: 14em;
        }
    `;
    document.head.appendChild(style);
    const container = document.querySelector("#MoreButtons");

    if (container) {
        const scriptCreditsH3 = document.createElement("h3");
        scriptCreditsH3.className = "settings-subtitle";
        scriptCreditsH3.textContent = "Script Credits 📄";

        const scriptCreditsHr = document.createElement("hr");
        scriptCreditsHr.className = "custom-hr";

        container.insertBefore(scriptCreditsHr, container.firstChild);
        container.insertBefore(scriptCreditsH3, container.firstChild);

        const listItem1 = document.createElement("li");
        listItem1.className = "custom-li";
        listItem1.innerHTML = `
            <img src="https://i.postimg.cc/yxJGhQGY/57c111110da958bc45adac69d64b43a1.webp">
            <span>Moka</span>
            <img src="/assets/img/DiscordIcone.png">
            <span>moka.io</span>
        `;

        const listItem2 = document.createElement("li");
        listItem2.className = "custom-li";
        listItem2.innerHTML = `
            <img src="https://i.postimg.cc/zDM6DNLL/dde6ddb2bb5b306570523fa27dcbac21.webp">
            <span>Zo</span>
            <img src="/assets/img/DiscordIcone.png">
            <span>_z0oz</span>
        `;

        container.insertBefore(listItem2, scriptCreditsHr.nextSibling);
        container.insertBefore(listItem1, listItem2);
    } else {
        console.error("Container #MoreButtons not found in the DOM.");
    }
};


/* ~~~~~~~~~~~~~~~~~~~~~REMOVE 'Privacy settings'~~~~~~~~~~~~~~~~~~~~~~ */
document.querySelectorAll('a').forEach(link => {
  if (link.textContent.includes('Privacy settings')) {
    link.remove();
  }
});

/* ~~~~~~~~~~~~~~~~~~~~~DISCORD INV~~~~~~~~~~~~~~~~~~~~~~ */
var Discord = document.createElement("div");
	Discord.style = "height: 40px; width: 88px; position: absolute; top: 25px; right: 5px; border: 2px solid #ffffff; border-radius: 25px; background: 0% 0% / 100% 100% no-repeat #5757c7; text-align: center; color: black; cursor: pointer;";
	Discord.innerText = "Discord";
	document.querySelector("#main-menu").append(Discord);
	Discord.onclick = () => {
		window.open("https://discord.gg/S8nJv8fkkw");
	}
	Discord.style.cursor = "pointer";
	Discord.style.backgroundSize = "100% 100%";
	Discord.style.backgroundRepeat = "no-repeat";

/* ~~~~~~~~~~~~~~~~~~~~~MENU TITLE~~~~~~~~~~~~~~~~~~~~~~ */
const menuTitle = document.querySelector("#title");
menuTitle.src = "https://i.postimg.cc/t4ZhDMsT/1325119-3.png";
Object.assign(menuTitle.style, { position: "absolute", top: "-5%", zIndex: "7" });

/* ~~~~~~~~~~~~~~~~~~~~~WINDOWS~~~~~~~~~~~~~~~~~~~~~~ */
const settingsContent = document.querySelector("#settings-content");
settingsContent.style.backgroundColor = "black";
const playersContent = document.querySelector("#players-content");
playersContent.style.backgroundColor = "black";
const leaderboardsContent = document.querySelector("#leaderboards-content");
leaderboardsContent.style.backgroundColor = "black";
const storeContent = document.querySelector("#store-content");
storeContent.style.backgroundColor = "black";
const seasonsContent = document.querySelector("#seasons-content");
seasonsContent.style.backgroundImage = "linear-gradient(90deg, red, #101010)";
const accountContent = document.querySelector("#account-content");
accountContent.style.backgroundColor = "black";
const badgeGalleryContent = document.querySelector("#badge-gallery-content");
badgeGalleryContent.style.backgroundColor = "black";
const tilesGalleryContent = document.querySelector("#tiles-gallery-content");
tilesGalleryContent.style.backgroundColor = "black";
const serversContent = document.querySelector("#servers-content");
serversContent.style.backgroundColor = "black";
const emojiGalleryContent = document.querySelector("#emoji-gallery-content");
emojiGalleryContent.style.backgroundColor = "black";
const replaysContent = document.querySelector("#replays-content");
replaysContent.style.backgroundColor = "#000";
const spinnerContent = document.querySelector("#spinner-content");
spinnerContent.style.backgroundImage = "linear-gradient(90deg, red, #101010)";
const vipContent = document.querySelector("#vip-content");
vipContent.style.backgroundImage = "linear-gradient(90deg, red, #101010)";
const communityContent = document.querySelector("#community-content");
communityContent.style.backgroundColor = "black";
document.addEventListener('DOMContentLoaded', function () {
    const profileElement = document.getElementById('Profile');

    if (profileElement) {
        profileElement.style.backgroundColor = '#ff0000';
    } else {
        console.error('Profile element not found');
    }
});

/* ~~~~~~~~~~~~~~~~~~~~~TIME SURVIVAL COUNTER~~~~~~~~~~~~~~~~~~~~~~ */
const playButton = document.getElementById('play-btn');
const leaveButton = document.querySelector('.swal-button.swal-button--confirm.fs40.swal-button--danger');

const gameDiv = document.createElement('div');
gameDiv.id = 'game';
gameDiv.textContent = 'Time Elapsed: 0 seconds';
document.body.appendChild(gameDiv);


gameDiv.style.position = 'absolute';
gameDiv.style.top = '22vw';
gameDiv.style.right = '10px';
gameDiv.style.color = 'white';
gameDiv.style.fontSize = '16px';
gameDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';
gameDiv.style.padding = '10px';
gameDiv.style.borderRadius = '5px';


let startTime;
let timerInterval;


playButton.addEventListener('click', () => {
    startCounter();
});

leaveButton.addEventListener('click', () => {
    stopCounter();
});

function startCounter() {
    startTime = Date.now();
    clearInterval(timerInterval);
    timerInterval = setInterval(updateCounter, 1000);
}

function stopCounter() {
    clearInterval(timerInterval);
}

function updateCounter() {
    const currentTime = Date.now();
    const elapsedTime = Math.floor((currentTime - startTime) / 1000);

    let minutes = Math.floor(elapsedTime / 60);
    let seconds = elapsedTime % 60;

    if (elapsedTime < 60) {
        gameDiv.textContent = `Time Elapsed: ${elapsedTime}s`;
    } else {
        gameDiv.textContent = `Time Elapsed: ${minutes}m and ${seconds}s`;
    }
}
})();