KeyBoard Panel v2

The best public keyboard panel in Sploop.io ! Next to the inscription "MADE BY NUDO" you can change the color of the text on the keyboard and it is saved after page reload. When you press the button, the keyboard will show that you have enabled the automatic attack, and will be highlighted in blue. Also on X.

  1. // ==UserScript==
  2. // @name KeyBoard Panel v2
  3. // @namespace </>Nudo#3310
  4. // @version 0.2
  5. // @description The best public keyboard panel in Sploop.io ! Next to the inscription "MADE BY NUDO" you can change the color of the text on the keyboard and it is saved after page reload. When you press the button, the keyboard will show that you have enabled the automatic attack, and will be highlighted in blue. Also on X.
  6. // @author Nudo
  7. // @match *://sploop.io/*
  8. // @match *://moomoo.io/*
  9. // @match *://*.moomoo.io/*
  10. // @icon https://media.discordapp.net/attachments/878345257786429471/922818957159829534/favicons_1_1.png
  11. // @require http://code.jquery.com/jquery-3.3.1.min.js
  12. // @require https://code.jquery.com/ui/1.12.0/jquery-ui.min.js
  13. // @grant none
  14. // ==/UserScript==
  15.  
  16. /* Re-enable contextmenu on the right mouse button.
  17. let elm = document.getElementsByTagName('*')
  18. for(let i = 0; i < elm.length; ++i) {
  19. elm[i].oncontextmenu = null
  20. }
  21. */
  22.  
  23. let fps = {
  24. old: Date.now(),
  25. count: 0,
  26. result: null,
  27. updateTime: 750
  28. }
  29.  
  30. function updateFPS() {
  31. let newDate = Date.now(),
  32. lastDate = newDate - fps.old
  33. if (lastDate < fps.updateTime) ++fps.count
  34. else {
  35. fps.result = Math.round(fps.count / (lastDate / 1000))
  36. if ($('#ping').css('display') == 'inline-flex') $("#ping > i").text('Ping: ' + (window.pingTime != undefined ? window.pingTime : 0))
  37. $("#fps > i").text('Fps: ' + fps.result)
  38. fps.count = 0
  39. fps.old = newDate
  40. }
  41. requestAnimationFrame(updateFPS)
  42. }
  43. requestAnimationFrame(updateFPS)
  44.  
  45. let keyBoard = `
  46. <div class="key-holder">
  47. <span class="fp" style="width: calc(100% - 10px); height: 40px; padding: 0;"><i>Made by Nudo</i><input type="color" id="keyBoardText-color" value="#ffffff" style="margin-left: 5px;"></span><br>
  48. <span class="key" id="keyQ"><i>q</i></span>
  49. <span class="key" id="keyW"><i>w</i></span>
  50. <span class="key" id="keyE"><i>e</i></span>
  51. <span class="key" id="keyR"><i>r</i></span><br>
  52. <span class="key" id="keyA"><i>a</i></span>
  53. <span class="key" id="keyS"><i>s</i></span>
  54. <span class="key" id="keyD"><i>d</i></span>
  55. <span class="key" id="keyF"><i>f</i></span><br>
  56. <span class="key" id="keySpace" style="width: 210px"><i>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</i></span>
  57. <span class="key" id="keyX"><i>x</i></span><br>
  58. <span class="cps" style="width: 135px; height: 40px; padding: 0;" id="lCps"><i>LCps: 0</i></span>
  59. <span class="cps" style="width: 135px; height: 40px; padding: 0;" id="rCps"><i>RCps: 0</i></span><br>
  60. <span class="fp" id="fps" style="margin-left: 75px; width: 135px; height: 40px; padding: 0;"><i>Fps: 0</i></span>
  61. <span class="fp" id="ping" style="display: none; width: 135px; height: 40px; padding: 0;" ><i>Ping: 0</i></span>
  62. </div>
  63. <style>
  64. .key-holder {
  65. position: absolute;
  66. top: 20px;
  67. left: 20px;
  68. }
  69. .key, .cps, .fp {
  70. position: relative;
  71. display: inline-flex;
  72. justify-content: center;
  73. align-items: center;
  74. padding-bottom: 8px;
  75. padding-right: 2px;
  76. border-radius: 10px;
  77. margin: 5px 5px;
  78. width: 60px;
  79. height: 60px;
  80. background: linear-gradient(180deg, rgba(41, 41, 41, 0.69), rgba(33, 33, 33, 0.54));
  81. box-shadow: inset -8px 0 8px rgba(0,0,0,.15), inset 0px -8px 8px rgba(0,0,0,.25), 0 0 0 2px rgba(0,0,0,.75), 10px 20px 25px rgba(0, 0, 0, .4);
  82. overflow: hidden;
  83. }
  84. .key::before {
  85. content: '';
  86. position: absolute;
  87. padding: 5px;
  88. top: 3px;
  89. left: 4px;
  90. bottom: 7px;
  91. right: 7px;
  92. background: linear-gradient(90deg, rgba(36, 36, 36, 0.78), rgba(74, 74, 74, 0.75));
  93. border-radius: 10px;
  94. box-shadow: -10px -10px 10px rgba(255, 255, 255, .25), 10px 5px 10px rgba(0, 0, 0, .15);
  95. border-left: 1px solid #0004;
  96. border-bottom: 1px solid #0004;
  97. border-top: 1px solid #0004;
  98. }
  99. .key i, .cps i, .fp i {
  100. position: relative;
  101. color: white;
  102. font-style: normal;
  103. font-size: 25px;
  104. text-transform: uppercase;
  105. text-shadow: rgb(20 20 20) 3px 0px 0px, rgb(20 20 20) 2.83487px 0.981584px 0px, rgb(20 20 20) 2.35766px 1.85511px 0px, rgb(20 20 20) 1.62091px 2.52441px 0px, rgb(20 20 20) 0.705713px 2.91581px 0px, rgb(20 20 20) -0.287171px 2.98622px 0px, rgb(20 20 20) -1.24844px 2.72789px 0px, rgb(20 20 20) -2.07227px 2.16926px 0px, rgb(20 20 20) -2.66798px 1.37182px 0px, rgb(20 20 20) -2.96998px 0.42336px 0px, rgb(20 20 20) -2.94502px -0.571704px 0px, rgb(20 20 20) -2.59586px -1.50383px 0px, rgb(20 20 20) -1.96093px -2.27041px 0px, rgb(20 20 20) -1.11013px -2.78704px 0px, rgb(20 20 20) -0.137119px -2.99686px 0px, rgb(20 20 20) 0.850987px -2.87677px 0px, rgb(20 20 20) 1.74541px -2.43999px 0px, rgb(20 20 20) 2.44769px -1.73459px 0px, rgb(20 20 20) 2.88051px -0.838247px 0px;
  106. }
  107.  
  108. input[type="color"] {
  109. -webkit-appearance: none;
  110. border: none;
  111. width: 29px;
  112. height: 28px;
  113. background: none;
  114. cursor: pointer;
  115. }
  116.  
  117. input[type="color"]::-webkit-color-swatch-wrapper {
  118. padding: 0;
  119. }
  120.  
  121. input[type="color"]::-webkit-color-swatch {
  122. outline: 0;
  123. display: block;
  124. border: none;
  125. border-radius: 50px;
  126. box-shadow: inset 0px 0px 5px #212121;
  127. border: 1px solid #141414;
  128. }
  129. </style>
  130. `
  131. $('body').append(keyBoard)
  132.  
  133. if (window.location.href.includes('sploop')) {
  134. $('#google_play').remove()
  135. } else {
  136. $('#fps').css('margin-left', '5px')
  137. $('#ping').css('display', 'inline-flex')
  138. $('.key, .cps, .fp').css('height', '40px')
  139. }
  140.  
  141. $('.key i, .cps i, .fp i').css('color', localStorage.getItem('keyBoard_color'))
  142. $('.fp #keyBoardText-color').val(localStorage.getItem('keyBoard_color') || '#ffffff')
  143.  
  144. document.querySelector('.fp #keyBoardText-color').oninput = () => {
  145. let val = $('.fp #keyBoardText-color').val()
  146. localStorage.setItem('keyBoard_color', val)
  147. $('.key i, .cps i, .fp i').css('color', val)
  148. }
  149.  
  150. let active = {
  151. keyQ: false,
  152. keyW: false,
  153. keyE: false,
  154. keyR: false,
  155. keyA: false,
  156. keyS: false,
  157. keyD: false,
  158. keyF: false,
  159. keySpace: false,
  160. keyX: false,
  161. lCps: 0,
  162. rCps: 0
  163. }
  164.  
  165. function changeBackground(id) {
  166. $(id).css('background', 'linear-gradient(180deg, rgba(47, 142, 71, 0.69), rgba(29, 88, 44, 0.69))')
  167. }
  168.  
  169. function rechangeBackground(id, activeKey) {
  170. if (activeKey == true) {
  171. setTimeout(() => {
  172. $(id).css('background', 'linear-gradient(180deg, rgba(41, 41, 41, 0.69), rgba(33, 33, 33, 0.54))')
  173. }, 500)
  174. }
  175. }
  176.  
  177. function autoAttackCheck() {
  178. if (active.keyE) {
  179. $('#keyE').css('background', 'linear-gradient(180deg, rgba(41, 41, 41, 0.69), rgba(33, 33, 33, 0.54))')
  180. active.keyE = false
  181. } else {
  182. $('#keyE').css('background', 'linear-gradient(180deg, rgba(47, 123, 142, 0.69), rgba(29, 79, 88, 0.69))')
  183. active.keyE = true
  184. }
  185. }
  186.  
  187. function lockDirCheck() {
  188. if (active.KeyX) {
  189. $('#keyX').css('background', 'linear-gradient(180deg, rgba(41, 41, 41, 0.69), rgba(33, 33, 33, 0.54))')
  190. active.KeyX = false
  191. } else {
  192. $('#keyX').css('background', 'linear-gradient(180deg, rgba(47, 123, 142, 0.69), rgba(29, 79, 88, 0.69))')
  193. active.KeyX = true
  194. }
  195. }
  196.  
  197. document.addEventListener("mousedown", downButton, false)
  198.  
  199. document.addEventListener("mouseup", upButton, false)
  200.  
  201. function downButton(e) {
  202. if (e.button == 0) {
  203. active.lCps++
  204. $('#lCps').css('background', 'linear-gradient(180deg, rgba(142, 63, 47, 0.69), rgba(88, 39, 29, 0.69))')
  205. $('#lCps > i').text(`LCps: ${active.lCps}`)
  206. setTimeout(() => {
  207. active.lCps--
  208. $('#lCps').css('background', 'linear-gradient(180deg, rgba(41, 41, 41, 0.69), rgba(33, 33, 33, 0.54))')
  209. $('#lCps > i').text(`LCps: ${active.lCps}`)
  210. }, 1000)
  211. }
  212. if (e.button == 2) {
  213. active.rCps++
  214. $('#rCps').css('background', 'linear-gradient(180deg, rgba(142, 63, 47, 0.69), rgba(88, 39, 29, 0.69))')
  215. $('#rCps > i').text(`RCps: ${active.rCps}`)
  216. setTimeout(() => {
  217. active.rCps--
  218. $('#rCps').css('background', 'linear-gradient(180deg, rgba(41, 41, 41, 0.69), rgba(33, 33, 33, 0.54))')
  219. $('#rCps > i').text(`RCps: ${active.rCps}`)
  220. }, 1000)
  221. }
  222. }
  223.  
  224. function upButton(e) {
  225. if (e.button == 0) {
  226. $('#lCps').css('background', 'linear-gradient(180deg, rgba(142, 63, 47, 0.69), rgba(88, 39, 29, 0.69))')
  227. $('#lCps > i').text(`LCps: ${active.lCps}`)
  228. }
  229. if (e.button == 2) {
  230. $('#rCps').css('background', 'linear-gradient(180deg, rgba(142, 63, 47, 0.69), rgba(88, 39, 29, 0.69))')
  231. $('#RCps > i').text(`RCps: ${active.rCps}`)
  232. }
  233. }
  234.  
  235. document.addEventListener('keydown', (e) => {
  236. if (e.code == 'KeyQ') (changeBackground('#keyQ'), active.keyQ = true)
  237. if (e.code == 'KeyW') (changeBackground('#keyW'), active.keyW = true)
  238. if (e.code == 'KeyE' && $('#homepage').css('display') != 'flex') autoAttackCheck()
  239. if (e.code == 'KeyR') (changeBackground('#keyR'), active.keyR = true)
  240. if (e.code == 'KeyA') (changeBackground('#keyA'), active.keyA = true)
  241. if (e.code == 'KeyS') (changeBackground('#keyS'), active.keyS = true)
  242. if (e.code == 'KeyD') (changeBackground('#keyD'), active.keyD = true)
  243. if (e.code == 'KeyF') (changeBackground('#keyF'), active.keyF = true)
  244. if (e.code == 'Space') (changeBackground('#keySpace'), active.keySpace = true)
  245. if (e.code == 'KeyX' && $('#homepage').css('display') != 'flex') lockDirCheck()
  246. })
  247.  
  248. document.addEventListener('keyup', (e) => {
  249. if (e.code == 'KeyQ') rechangeBackground('#keyQ', active.keyQ)
  250. if (e.code == 'KeyW') rechangeBackground('#keyW', active.keyW)
  251. if (e.code == 'KeyR') rechangeBackground('#keyR', active.keyR)
  252. if (e.code == 'KeyA') rechangeBackground('#keyA', active.keyA)
  253. if (e.code == 'KeyS') rechangeBackground('#keyS', active.keyS)
  254. if (e.code == 'KeyD') rechangeBackground('#keyD', active.keyD)
  255. if (e.code == 'KeyF') rechangeBackground('#keyF', active.keyF)
  256. if (e.code == 'Space') rechangeBackground('#keySpace', active.keySpace)
  257. })

QingJ © 2025

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