Nekoking Client! 1.1

Enhanced customization for Poxel.io with RAVE, CHAOS, crosshair, color mod, ad remover, and more. (No Resolution Scale)

  1. // ==UserScript==
  2. // @name Nekoking Client! 1.1
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.1
  5. // @description Enhanced customization for Poxel.io with RAVE, CHAOS, crosshair, color mod, ad remover, and more. (No Resolution Scale)
  6. // @author Nekoking!
  7. // @match *://poxel.io/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function () {
  12. 'use strict';
  13.  
  14. // ---------- スタイル追加 ----------
  15. const style = document.createElement('style');
  16. style.textContent = `
  17. #gear-button {
  18. position: fixed;
  19. top: 50%;
  20. left: 0;
  21. transform: translateY(-50%);
  22. background-color: #222;
  23. padding: 10px;
  24. border-radius: 0 10px 10px 0;
  25. color: white;
  26. cursor: pointer;
  27. z-index: 9999;
  28. font-size: 20px;
  29. }
  30. #settings-panel {
  31. position: fixed;
  32. top: 50%;
  33. left: 50px;
  34. transform: translateY(-50%);
  35. background: rgba(0, 0, 0, 0.9);
  36. padding: 15px;
  37. color: white;
  38. border-radius: 10px;
  39. z-index: 9999;
  40. display: none;
  41. min-width: 250px;
  42. }
  43. .section {
  44. margin-bottom: 10px;
  45. border-bottom: 1px solid #555;
  46. padding-bottom: 10px;
  47. }
  48. .section:last-child {
  49. border-bottom: none;
  50. }
  51. label {
  52. display: block;
  53. margin: 4px 0;
  54. }
  55. .subpanel {
  56. margin-top: 8px;
  57. padding-left: 10px;
  58. }
  59. .slider {
  60. width: 100%;
  61. }
  62. #crosshair {
  63. position: fixed;
  64. z-index: 9998;
  65. top: 50%;
  66. left: 50%;
  67. transform: translate(-50%, -50%);
  68. pointer-events: none;
  69. }
  70. #rave-overlay, #color-overlay, #chaos-overlay {
  71. position: fixed;
  72. top: 0; left: 0;
  73. width: 100vw;
  74. height: 100vh;
  75. z-index: 9990;
  76. pointer-events: none;
  77. }
  78. #rave-overlay {
  79. background: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet);
  80. mix-blend-mode: screen;
  81. opacity: 0.8;
  82. animation: rave 1s linear infinite;
  83. display: none;
  84. }
  85. #chaos-overlay {
  86. background: black;
  87. mix-blend-mode: difference;
  88. animation: chaos 0.3s infinite;
  89. display: none;
  90. }
  91. #color-overlay {
  92. background-color: rgba(255,0,0,0.2);
  93. mix-blend-mode: multiply;
  94. display: none;
  95. }
  96. @keyframes rave {
  97. 0% { filter: hue-rotate(0deg); }
  98. 100% { filter: hue-rotate(360deg); }
  99. }
  100. @keyframes chaos {
  101. 0% { background: red; }
  102. 25% { background: yellow; }
  103. 50% { background: lime; }
  104. 75% { background: cyan; }
  105. 100% { background: violet; }
  106. }
  107. `;
  108. document.head.appendChild(style);
  109.  
  110. // ---------- オーバーレイ ----------
  111. const overlayRave = document.createElement('div');
  112. overlayRave.id = 'rave-overlay';
  113. document.body.appendChild(overlayRave);
  114.  
  115. const overlayColor = document.createElement('div');
  116. overlayColor.id = 'color-overlay';
  117. document.body.appendChild(overlayColor);
  118.  
  119. const overlayChaos = document.createElement('div');
  120. overlayChaos.id = 'chaos-overlay';
  121. document.body.appendChild(overlayChaos);
  122.  
  123. // ---------- 歯車ボタン ----------
  124. const gear = document.createElement('div');
  125. gear.id = 'gear-button';
  126. gear.textContent = '⚙️';
  127. document.body.appendChild(gear);
  128.  
  129. const panel = document.createElement('div');
  130. panel.id = 'settings-panel';
  131. document.body.appendChild(panel);
  132.  
  133. gear.addEventListener('click', () => {
  134. panel.style.display = panel.style.display === 'none' ? 'block' : 'none';
  135. });
  136.  
  137. // ---------- UI ----------
  138. panel.innerHTML = `
  139. <div class="section">
  140. <label><input type="checkbox" id="enable-crosshair"> Enable Crosshair</label>
  141. <div id="crosshair-settings" class="subpanel" style="display:none;">
  142. <label>Type: <select id="crosshair-type"><option>Dot</option><option>Cross</option></select></label>
  143. <label>Size: <input type="range" id="crosshair-size" min="4" max="40" value="10" class="slider"></label>
  144. <label>Color: <input type="color" id="crosshair-color" value="#ffffff"></label>
  145. </div>
  146. </div>
  147. <div class="section">
  148. <label><input type="checkbox" id="enable-color"> Enable Color Mod</label>
  149. <div id="color-settings" class="subpanel" style="display:none;">
  150. <label>Color: <input type="color" id="color-mod-color" value="#ff0000"></label>
  151. <label>Opacity: <input type="range" id="color-mod-opacity" min="0" max="1" step="0.01" value="0.2" class="slider"></label>
  152. </div>
  153. </div>
  154. <div class="section">
  155. <label><input type="checkbox" id="enable-rave"> RAVE Mode</label>
  156. </div>
  157. <div class="section">
  158. <label><input type="checkbox" id="enable-chaos"> Chaos Mode</label>
  159. </div>
  160. <div class="section">
  161. <label><input type="checkbox" id="enable-performance"> Performance Mode</label>
  162. </div>
  163. <div class="section">
  164. <label><input type="checkbox" id="enable-removefx"> Remove Effects</label>
  165. </div>
  166. <div class="section">
  167. <label><input type="checkbox" id="enable-adblock"> Remove ADS</label>
  168. </div>
  169. `;
  170.  
  171. // ---------- クロスヘア描画 ----------
  172. const crosshairCanvas = document.createElement('canvas');
  173. crosshairCanvas.id = 'crosshair';
  174. document.body.appendChild(crosshairCanvas);
  175. const ctx = crosshairCanvas.getContext('2d');
  176.  
  177. function drawCrosshair() {
  178. const enabled = document.getElementById('enable-crosshair').checked;
  179. crosshairCanvas.style.display = enabled ? 'block' : 'none';
  180. if (!enabled) return;
  181.  
  182. const type = document.getElementById('crosshair-type').value;
  183. const size = parseInt(document.getElementById('crosshair-size').value);
  184. const color = document.getElementById('crosshair-color').value;
  185.  
  186. crosshairCanvas.width = size * 2;
  187. crosshairCanvas.height = size * 2;
  188. ctx.clearRect(0, 0, crosshairCanvas.width, crosshairCanvas.height);
  189. ctx.strokeStyle = color;
  190. ctx.fillStyle = color;
  191. ctx.lineWidth = 2;
  192.  
  193. if (type === 'Dot') {
  194. ctx.beginPath();
  195. ctx.arc(size, size, size / 4, 0, Math.PI * 2);
  196. ctx.fill();
  197. } else {
  198. ctx.beginPath();
  199. ctx.moveTo(size, 0);
  200. ctx.lineTo(size, size * 2);
  201. ctx.moveTo(0, size);
  202. ctx.lineTo(size * 2, size);
  203. ctx.stroke();
  204. }
  205. }
  206.  
  207. // ---------- イベント処理 ----------
  208. document.getElementById('enable-crosshair').addEventListener('change', e => {
  209. document.getElementById('crosshair-settings').style.display = e.target.checked ? 'block' : 'none';
  210. drawCrosshair();
  211. });
  212. ['crosshair-type', 'crosshair-size', 'crosshair-color'].forEach(id => {
  213. document.getElementById(id).addEventListener('input', drawCrosshair);
  214. });
  215.  
  216. document.getElementById('enable-color').addEventListener('change', e => {
  217. document.getElementById('color-settings').style.display = e.target.checked ? 'block' : 'none';
  218. overlayColor.style.display = e.target.checked ? 'block' : 'none';
  219. });
  220. document.getElementById('color-mod-color').addEventListener('input', e => {
  221. overlayColor.style.backgroundColor = e.target.value;
  222. });
  223. document.getElementById('color-mod-opacity').addEventListener('input', e => {
  224. overlayColor.style.opacity = e.target.value;
  225. });
  226.  
  227. document.getElementById('enable-rave').addEventListener('change', e => {
  228. overlayRave.style.display = e.target.checked ? 'block' : 'none';
  229. });
  230.  
  231. document.getElementById('enable-chaos').addEventListener('change', e => {
  232. overlayChaos.style.display = e.target.checked ? 'block' : 'none';
  233. });
  234.  
  235. document.getElementById('enable-performance').addEventListener('change', e => {
  236. document.body.style.imageRendering = e.target.checked ? 'pixelated' : '';
  237. });
  238.  
  239. document.getElementById('enable-removefx').addEventListener('change', e => {
  240. const particleContainers = document.querySelectorAll('[class*=particle], [class*=fx]');
  241. particleContainers.forEach(el => el.style.display = e.target.checked ? 'none' : '');
  242. });
  243.  
  244. document.getElementById('enable-adblock').addEventListener('change', e => {
  245. const ads = document.querySelectorAll('iframe, .ad, [id*=ads], [class*=ads], .adsbygoogle');
  246. ads.forEach(ad => ad.remove());
  247. });
  248.  
  249. // 初期描画
  250. drawCrosshair();
  251. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址