您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Simple yet modern render options for zombia.io with draggable UI.
// ==UserScript== // @name hackqd's Render Options {Zombia.io} // @namespace http://tampermonkey.net/ // @version 2.1 // @description Simple yet modern render options for zombia.io with draggable UI. // @author hackqd // @match *://zombia.io/* // @grant none // ==/UserScript== (function() { 'use strict'; let disableBackground = false; let disableProjectiles = false; let disableBuildings = false; let disableZombies = false; let disableScenery = false; let disablePlayers = false; function makeDraggable(element) { let isDragging = false; let offsetX = 0, offsetY = 0; element.addEventListener('mousedown', (e) => { isDragging = true; offsetX = e.clientX - element.offsetLeft; offsetY = e.clientY - element.offsetTop; element.style.cursor = "grabbing"; }); document.addEventListener('mousemove', (e) => { if (isDragging) { element.style.left = (e.clientX - offsetX) + "px"; element.style.top = (e.clientY - offsetY) + "px"; } }); document.addEventListener('mouseup', () => { isDragging = false; element.style.cursor = "grab"; }); } const settingsButton = document.createElement("div"); settingsButton.innerHTML = "⚙️"; settingsButton.style.position = "absolute"; settingsButton.style.top = "10px"; settingsButton.style.left = "10px"; settingsButton.style.width = "40px"; settingsButton.style.height = "40px"; settingsButton.style.background = "#717d7e"; settingsButton.style.color = "white"; settingsButton.style.fontSize = "24px"; settingsButton.style.textAlign = "center"; settingsButton.style.lineHeight = "40px"; settingsButton.style.borderRadius = "8px"; settingsButton.style.cursor = "grab"; settingsButton.style.zIndex = "1000"; document.body.appendChild(settingsButton); makeDraggable(settingsButton); const settingsPanel = document.createElement("div"); settingsPanel.style.position = "absolute"; settingsPanel.style.top = "60px"; settingsPanel.style.left = "10px"; settingsPanel.style.padding = "15px"; settingsPanel.style.background = "rgba(255, 255, 255, 0.1)"; settingsPanel.style.backdropFilter = "blur(10px)"; settingsPanel.style.borderRadius = "12px"; settingsPanel.style.boxShadow = "0 4px 10px rgba(0, 0, 0, 0.4)"; settingsPanel.style.color = "white"; settingsPanel.style.display = "none"; settingsPanel.style.zIndex = "1000"; settingsPanel.style.minWidth = "200px"; settingsPanel.style.width = "auto"; document.body.appendChild(settingsPanel); makeDraggable(settingsPanel); const title = document.createElement("div"); title.innerText = "Render Options"; title.style.fontSize = "18px"; title.style.fontWeight = "bold"; title.style.marginBottom = "10px"; settingsPanel.appendChild(title); const buttonContainer = document.createElement("div"); buttonContainer.style.display = "grid"; buttonContainer.style.gridTemplateColumns = "repeat(3, 1fr)"; buttonContainer.style.gridGap = "10px"; buttonContainer.style.marginBottom = "15px"; settingsPanel.appendChild(buttonContainer); function createToggleButton(text, callback) { const button = document.createElement("button"); button.innerText = text; button.style.padding = "8px 15px"; button.style.background = "red"; button.style.color = "white"; button.style.border = "none"; button.style.cursor = "pointer"; button.style.borderRadius = "5px"; button.style.fontSize = "14px"; button.style.transition = "background-color 0.3s"; button.style.minWidth = "120px"; button.style.outline = "none"; button.addEventListener("click", callback); buttonContainer.appendChild(button); return button; } const toggleOptions = [ { label: "Background", prop: "groundLayer" }, { label: "Projectiles", prop: "projectiles" }, { label: "Buildings", prop: "buildings" }, { label: "Zombies", prop: "zombieLayer" }, { label: "Scenery", prop: "scenery" }, { label: "Players", prop: "players" } ]; toggleOptions.forEach(option => { createToggleButton(`Stop Rendering ${option.label}`, function() { let prop = `disable${option.label}`; window[prop] = !window[prop]; this.innerText = window[prop] ? `Start Rendering ${option.label}` : `Stop Rendering ${option.label}`; this.style.background = window[prop] ? "green" : "red"; if (window.game && window.game.renderer && window.game.renderer[option.prop]) { window.game.renderer[option.prop].setVisible(!window[prop]); } else { console.warn(`${option.label} layer not found`); } }); }); settingsButton.addEventListener("click", function() { settingsPanel.style.display = (settingsPanel.style.display === "none") ? "block" : "none"; }); })();