您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Show HP%, FPS, CPS, Ping, Press M to ON/OFF ghost mode, Big Shop, Transparent Shop & Clan menu. Use 75% page zoom for best results.
当前为
// ==UserScript== // @name Sploop.io Legit Script // @namespace http://tampermonkey.net/ // @version 0.6 // @description Show HP%, FPS, CPS, Ping, Press M to ON/OFF ghost mode, Big Shop, Transparent Shop & Clan menu. Use 75% page zoom for best results. // @match *://sploop.io/* // @icon https://i.postimg.cc/vBz07fcS/Screenshot-2025-08-28-090152.png // @grant none // @author normalplayer // ==/UserScript== (function() { 'use strict'; // ================== GHOST MODE ================== CanvasRenderingContext2D.prototype.OdrawImage = CanvasRenderingContext2D.prototype.drawImage; let ghostModeEnabled = true; document.addEventListener("keydown", e => { if (e.key.toLowerCase() === "m") { ghostModeEnabled = !ghostModeEnabled; console.log("Ghost Mode:", ghostModeEnabled ? "ON" : "OFF"); } }); const excludedKeywords = [ "player", "inv_", "cow", "duck", "wolf", "shark", "mammoth", "gcow", "dragon" ]; const resourceKeywords = [ "tree", "rock", "bush", "cactus", "ruby", "wood", "stone", "gold", "wall", "spike", "windmill", "trap", "boost", "turret", "heal_pad", "platform", "roof", "bed", "teleporter", "lootbox" ]; CanvasRenderingContext2D.prototype.drawImage = function (...args) { const image = args[0]; const src = image && image.src; if (src && ghostModeEnabled) { const isExcluded = excludedKeywords.some(k => src.includes(k)); const isResource = resourceKeywords.some(k => src.includes(k)); this.save(); if (!isExcluded && isResource) { this.globalAlpha = 0.4; } else { this.globalAlpha = 1.0; } this.OdrawImage.call(this, ...args); this.restore(); } else { return this.OdrawImage.call(this, ...args); } }; /* // ================== TEXTURE REPLACE ================== const textureMap = { "tree": "", "rock": "", "wall": "", "gold": "" }; const _srcDescriptor = Object.getOwnPropertyDescriptor(Image.prototype, "src"); Object.defineProperty(Image.prototype, "src", { set: function(value) { for (const key in textureMap) { if (value.includes(key)) { value = textureMap[key]; break; } } _srcDescriptor.set.call(this, value); }, get: function() { return _srcDescriptor.get.call(this); } });*/ // ---------------- Better Health Bar ---------------- function lerpColor(a, b, amount) { const ah = parseInt(a.replace(/#/g, ''), 16), ar = ah >> 16, ag = (ah >> 8) & 0xff, ab = ah & 0xff; const bh = parseInt(b.replace(/#/g, ''), 16), br = bh >> 16, bg = (bh >> 8) & 0xff, bb = bh & 0xff; const rr = ar + amount * (br - ar), rg = ag + amount * (bg - ag), rb = ab + amount * (bb - ab); return '#' + (((1 << 24) + (rr << 16) + (rg << 8) + rb) | 0).toString(16).slice(1); } function drawHpText(ctx, text, xPos, yPos, color) { ctx.save(); ctx.font = "20px 'Baloo Paaji'"; ctx.textAlign = "center"; ctx.textBaseline = "top"; ctx.fillStyle = color; ctx.fillText(text, xPos, yPos); ctx.restore(); } const enhanceFillRect = function (fill) { return function (x, y, width, height) { const fullWidth = 95; const hpPercent = Math.max(0, Math.min(1, width / fullWidth)); const percentText = `${~~(width / fullWidth * 100)}%`; const centerX = x + fullWidth / 2; let color; if (this.fillStyle === "#a4cc4f") { color = hpPercent > 0.5 ? lerpColor("#a4cc4f", "#e09f3e", (1 - hpPercent) * 2) : lerpColor("#e09f3e", "#cc5151", (0.5 - hpPercent) * 2); this.fillStyle = color; drawHpText(this, percentText, centerX, y + height + 9, color); } if (this.fillStyle === "#cc5151") { color = hpPercent > 0.5 ? lerpColor("#cc5151", "#e09f3e", (1 - hpPercent) * 2) : lerpColor("#e09f3e", "#a4cc4f", (0.5 - hpPercent) * 2); this.fillStyle = color; drawHpText(this, percentText, centerX, y + height + 9, color); } fill.call(this, x, y, width, height); }; }; const FillRect = CanvasRenderingContext2D.prototype.fillRect; CanvasRenderingContext2D.prototype.fillRect = enhanceFillRect(FillRect); const { fillText } = CanvasRenderingContext2D.prototype; CanvasRenderingContext2D.prototype.fillText = function (...args) { if (typeof args[0] === "string") { this.lineWidth = 8; this.strokeStyle = "#313131"; this.strokeText.apply(this, args); } return fillText.apply(this, args); }; const { strokeRect } = CanvasRenderingContext2D.prototype; CanvasRenderingContext2D.prototype.strokeRect = function(x, y, w, h) { if ((w === 40 && h === 40) || this.strokeStyle === "#bfbfbf" || this.strokeStyle === "#dedede") { return; } return strokeRect.call(this, x, y, w, h); }; const { stroke } = CanvasRenderingContext2D.prototype; CanvasRenderingContext2D.prototype.stroke = function(...args) { if (this.strokeStyle === "#bfbfbf" || this.strokeStyle === "#dedede") { return; } return stroke.apply(this, args); }; // ---------------- Overlay ---------------- const overlay = document.createElement("canvas"); overlay.width = window.innerWidth; overlay.height = window.innerHeight; overlay.style.position = "absolute"; overlay.style.top = "0"; overlay.style.left = "0"; overlay.style.pointerEvents = "none"; overlay.style.zIndex = "9999"; document.body.appendChild(overlay); const octx = overlay.getContext("2d"); let frameCount = 0, fpsStartTime = performance.now(), fps=0, cps=0; let lastFrameTime = performance.now(), ping='...'; // ---------------- Ping ---------------- setInterval(()=>{ const now = performance.now(); ping = Math.round(now - lastFrameTime); lastFrameTime = now; }, 50); document.addEventListener("mousedown", ()=>{ cps++; setTimeout(()=>cps--,1000); }); function loop(){ const now = performance.now(); frameCount++; if(now - fpsStartTime >= 1000){ fps = frameCount; frameCount=0; fpsStartTime=now; } octx.clearRect(0,0,overlay.width,overlay.height); octx.save(); octx.font = "20px 'Baloo Paaji'"; octx.textBaseline = "top"; octx.strokeStyle="#313131"; octx.lineWidth=4; octx.strokeText(`FPS: ${fps}`,10,5); octx.fillStyle="white"; octx.fillText(`FPS: ${fps}`,10,5); octx.strokeText(`CPS: ${cps}`,10,30); octx.fillText(`CPS: ${cps}`,10,30); octx.strokeText(`PING: ${ping}ms`,10,55); octx.fillText(`PING: ${ping}ms`,10,55); octx.restore(); requestAnimationFrame(loop); } loop(); window.addEventListener("resize", ()=>{ overlay.width = window.innerWidth; overlay.height = window.innerHeight; }); // ---------------- Auto Toggle ---------------- ['#grid-toggle','#native-friendly-indicator'].forEach(id=>{ const el = document.querySelector(id); if(el) el.click(); }); // ---------------- Ad Remove ---------------- const styleAdRemove = document.createElement('style'); styleAdRemove.type = 'text/css'; styleAdRemove.appendChild(document.createTextNode(` #cross-promo,#bottom-wrap,#google_play,#game-left-content-main,#game-bottom-content,#game-right-content-main,#left-content,#right-content{ display:none !important; } `)); document.head.appendChild(styleAdRemove); document.querySelector('#game-content').style.justifyContent='center'; document.querySelector('#main-content').style.width='auto'; // ---------------- Big Shop, Clan ------------------- (function() { var style = document.createElement("style"); style.innerHTML = ` /* --- SHOP --- */ #hat-menu { width: 500px !important; height: 790px !important; background: rgba(0,0,0,0) !important; opacity: 0.95 !important; border: 5px solid black !important; box-shadow: none !important; } #hat_menu_content { max-height: 780px !important; overflow-y: auto !important; background: transparent !important; } /* --- CLAN MENU --- */ #clan-menu { background: rgba(0,0,0,0) !important; /* trong suốt */ opacity: 0.95 !important; border: 5px solid black !important; /* vẫn giữ viền */ box-shadow: none !important; } #clan_menu_content { background: transparent !important; } `; document.head.appendChild(style); })(); // ------------------ Background -------------------- window.addEventListener("load", () => { const homepage = document.getElementById("homepage"); if (homepage) { homepage.style.backgroundImage = "url('https://4kwallpapers.com/images/wallpapers/satoru-gojo-black-3440x1440-14684.png')"; homepage.style.backgroundSize = "cover"; homepage.style.backgroundPosition = "center"; homepage.style.backgroundRepeat = "no-repeat"; } }); // --------------- UI -------------- const customReplacements = [ { selector: "#logo", image: "https://i.postimg.cc/HW8qMWLM/logo.png" }, ]; function applyCustomUI() { customReplacements.forEach(item => { const el = document.querySelector(item.selector); if (el) { if (el.tagName === "IMG") { el.src = item.image; } else { el.style.backgroundImage = `url(${item.image})`; el.style.backgroundSize = "cover"; el.style.backgroundPosition = "center"; el.style.backgroundRepeat = "no-repeat"; } } }); } applyCustomUI(); setInterval(applyCustomUI, 2000); function clearStyles(el) { if (!el) return; el.style.border = 'none'; el.style.outline = 'none'; el.style.boxShadow = 'none'; el.style.background = 'transparent'; el.style.backgroundColor = 'transparent'; el.style.opacity = '0.7'; el.style.setProperty('background-color', 'transparent', 'important'); el.style.setProperty('box-shadow', 'none', 'important'); el.style.setProperty('border', 'none', 'important'); el.style.setProperty('outline', 'none', 'important'); } window.addEventListener('load', () => { ['nav-img-profile', 'nav-img-shop', 'nav-img-game', 'nav-img-skins', 'nav-img-ranking'] .forEach(id => { const el = document.getElementById(id); if (el) el.style.display = 'none'; }); [ 'nav-profile', 'nav-game', 'nav-shop', 'nav-skins', 'nav-ranking', 'menu-nickname', 'server-select', 'play-text', 'ffa-mode', 'sandbox-mode', 'event-mode' ].forEach(id => { const el = document.getElementById(id); if (el) el.style.opacity = '0.5'; }); const nickname = document.getElementById('menu-nickname'); clearStyles(nickname); if (nickname) { nickname.querySelectorAll('input, textarea').forEach(input => { clearStyles(input); input.style.color = 'inherit'; }); clearStyles(nickname.parentElement); } const playBtn = document.getElementById('play-text'); clearStyles(playBtn); if (playBtn?.parentElement) clearStyles(playBtn.parentElement); ['ffa-mode', 'sandbox-mode', 'event-mode'].forEach(id => { const el = document.getElementById(id); clearStyles(el); if (el?.parentElement) clearStyles(el.parentElement); }); const container = document.getElementById('game-middle-main'); clearStyles(container); if (container) { container.querySelectorAll('*').forEach(child => clearStyles(child)); } }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址