hackqd's Render Options {Zombia.io}

Simple yet modern render options for zombia.io.

当前为 2025-02-15 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name hackqd's Render Options {Zombia.io}
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.0
  5. // @description Simple yet modern render options for zombia.io.
  6. // @author hackqd
  7. // @match *://zombia.io/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. let disableBackground = false;
  15. let disableProjectiles = false;
  16. let disableBuildings = false;
  17. let disableZombies = false;
  18. let disableScenery = false;
  19. let disablePlayers = false;
  20.  
  21. const settingsButton = document.createElement("div");
  22. settingsButton.innerHTML = "⚙️";
  23. settingsButton.style.position = "absolute";
  24. settingsButton.style.top = "10px";
  25. settingsButton.style.left = "10px";
  26. settingsButton.style.width = "40px";
  27. settingsButton.style.height = "40px";
  28. settingsButton.style.background = "#717d7e";
  29. settingsButton.style.color = "white";
  30. settingsButton.style.fontSize = "24px";
  31. settingsButton.style.textAlign = "center";
  32. settingsButton.style.lineHeight = "40px";
  33. settingsButton.style.borderRadius = "8px";
  34. settingsButton.style.cursor = "pointer";
  35. settingsButton.style.zIndex = "1000";
  36. document.body.appendChild(settingsButton);
  37.  
  38. let isDraggingButton = false;
  39. let buttonOffsetX = 0;
  40. let buttonOffsetY = 0;
  41.  
  42. settingsButton.addEventListener('mousedown', (e) => {
  43. isDraggingButton = true;
  44. buttonOffsetX = e.clientX - settingsButton.offsetLeft;
  45. buttonOffsetY = e.clientY - settingsButton.offsetTop;
  46. settingsButton.style.cursor = "grabbing";
  47. });
  48.  
  49. document.addEventListener('mousemove', (e) => {
  50. if (isDraggingButton) {
  51. settingsButton.style.left = (e.clientX - buttonOffsetX) + "px";
  52. settingsButton.style.top = (e.clientY - buttonOffsetY) + "px";
  53. }
  54. });
  55.  
  56. document.addEventListener('mouseup', () => {
  57. isDraggingButton = false;
  58. settingsButton.style.cursor = "pointer";
  59. });
  60.  
  61. const settingsPanel = document.createElement("div");
  62. settingsPanel.style.position = "absolute";
  63. settingsPanel.style.top = "60px";
  64. settingsPanel.style.left = "10px";
  65. settingsPanel.style.padding = "15px";
  66. settingsPanel.style.background = "rgba(255, 255, 255, 0.1)";
  67. settingsPanel.style.backdropFilter = "blur(10px)";
  68. settingsPanel.style.borderRadius = "12px";
  69. settingsPanel.style.boxShadow = "0 4px 10px rgba(0, 0, 0, 0.4)";
  70. settingsPanel.style.color = "white";
  71. settingsPanel.style.display = "none";
  72. settingsPanel.style.zIndex = "1000";
  73. settingsPanel.style.minWidth = "200px";
  74. settingsPanel.style.width = "auto";
  75. document.body.appendChild(settingsPanel);
  76.  
  77. let isDraggingPanel = false;
  78. let offsetX = 0;
  79. let offsetY = 0;
  80.  
  81. settingsPanel.addEventListener('mousedown', (e) => {
  82. isDraggingPanel = true;
  83. offsetX = e.clientX - settingsPanel.offsetLeft;
  84. offsetY = e.clientY - settingsPanel.offsetTop;
  85. settingsPanel.style.cursor = "move";
  86. });
  87.  
  88. document.addEventListener('mousemove', (e) => {
  89. if (isDraggingPanel) {
  90. settingsPanel.style.left = (e.clientX - offsetX) + "px";
  91. settingsPanel.style.top = (e.clientY - offsetY) + "px";
  92. }
  93. });
  94.  
  95. document.addEventListener('mouseup', () => {
  96. isDraggingPanel = false;
  97. settingsPanel.style.cursor = "default";
  98. });
  99.  
  100. const title = document.createElement("div");
  101. title.innerText = "Render Options";
  102. title.style.fontSize = "18px";
  103. title.style.fontWeight = "bold";
  104. title.style.marginBottom = "10px";
  105. settingsPanel.appendChild(title);
  106.  
  107. settingsButton.addEventListener("click", function() {
  108. settingsPanel.style.display = (settingsPanel.style.display === "none") ? "block" : "none";
  109. });
  110.  
  111. })();