ScrollMacro Sploop.io v2

With this script, you can quickly scroll through the store with caps! When you click on the buttons, the store will automatically open and scroll the ScrollBar to the desired header ! Keys: B-BerserkerGear, C-BoostHat, T-CrystalGear, V-ImmunityGear.

  1. // ==UserScript==
  2. // @name ScrollMacro Sploop.io v2
  3. // @namespace none
  4. // @version 2
  5. // @description With this script, you can quickly scroll through the store with caps! When you click on the buttons, the store will automatically open and scroll the ScrollBar to the desired header ! Keys: B-BerserkerGear, C-BoostHat, T-CrystalGear, V-ImmunityGear.
  6. // @author 00100110#6361
  7. // @match *://sploop.io/*
  8. // @grant none
  9. // @require http://code.jquery.com/jquery-3.3.1.min.js
  10. // @require https://code.jquery.com/ui/1.12.0/jquery-ui.min.js
  11. // ==/UserScript==
  12. (() => {
  13. 'use strict'
  14.  
  15. let sleep = (ms) => new Promise(resolve => { setTimeout(() => resolve(), ms) })
  16.  
  17. let first_title_mode = true,
  18. last_title_mode = false,
  19. oldDate = Date.now()
  20.  
  21. // Set Event KeyDown...
  22. document.addEventListener('keydown', (event) => {
  23. // Open Bind_Key_Menu...
  24. if (event.code === "Escape") {
  25. if ($('#bind-key-menu').css('display') == 'none') $('#bind-key-menu').animate({top: 'show'}, 100)
  26. else $('#bind-key-menu').animate({top: 'hide'}, 100)
  27. }
  28. })
  29.  
  30. // Create Bind_Key_Menu...
  31. const html_MenuCode = `
  32. <div id="bind-key-menu">
  33. <div id="block-bind">
  34. <Text>Crystral: <input type="text" id="crystalBind" onKeyPress=SupressInput(event); oncontextmenu="return false" style="width: 75px;" value="KeyT" class="inputTxt"></Text>
  35. <br>
  36. <Text>Berserker: <input type="text" id="berserkerBind" onKeyPress=SupressInput(event); oncontextmenu="return false" style="width: 75px;" value="KeyB" class="inputTxt"></Text>
  37. <br>
  38. <Text>Boost: <input type="text" id="boostBind" onKeyPress=SupressInput(event); oncontextmenu="return false" style="width: 75px;" value="KeyC" class="inputTxt"></Text>
  39. <br>
  40. <Text>Immunity: <input type="text" id="immunityBind" onKeyPress=SupressInput(event); oncontextmenu="return false" style="width: 75px;" value="KeyV" class="inputTxt"></Text>
  41. </div>
  42. </div>
  43. <style>
  44. Text {
  45. font-size: 22px;
  46. color: #fff;
  47. text-shadow: rgb(20 20 20) 4px 0px 0px, rgb(20 20 20) 3.87565px 0.989616px 0px, rgb(20 20 20) 3.51033px 1.9177px 0px, rgb(20 20 20) 2.92676px 2.72656px 0px, rgb(20 20 20) 2.16121px 3.36588px 0px, rgb(20 20 20) 1.26129px 3.79594px 0px, rgb(20 20 20) 0.282949px 3.98998px 0px, rgb(20 20 20) -0.712984px 3.93594px 0px, rgb(20 20 20) -1.66459px 3.63719px 0px, rgb(20 20 20) -2.51269px 3.11229px 0px, rgb(20 20 20) -3.20457px 2.39389px 0px, rgb(20 20 20) -3.69721px 1.52664px 0px, rgb(20 20 20) -3.95997px 0.56448px 0px, rgb(20 20 20) -3.97652px -0.432781px 0px, rgb(20 20 20) -3.74583px -1.40313px 0px, rgb(20 20 20) -3.28224px -2.28625px 0px, rgb(20 20 20) -2.61457px -3.02721px 0px, rgb(20 20 20) -1.78435px -3.57996px 0px, rgb(20 20 20) -0.843183px -3.91012px 0px, rgb(20 20 20) 0.150409px -3.99717px 0px, rgb(20 20 20) 1.13465px -3.8357px 0px, rgb(20 20 20) 2.04834px -3.43574px 0px, rgb(20 20 20) 2.83468px -2.82216px 0px, rgb(20 20 20) 3.44477px -2.03312px 0px, rgb(20 20 20) 3.84068px -1.11766px 0px, rgb(20 20 20) 3.9978px -0.132717px 0px;
  48. }
  49.  
  50. #block-bind {
  51. width: 100%;
  52. height: auto;
  53. padding: 8px;
  54. background: rgba(0, 0, 0, 0.25);
  55. box-shadow: inset 0 5px 0 rgb(20 20 20 / 40%);
  56. border-radius: 15px;
  57. border: 5px solid #141414;
  58. }
  59.  
  60. #bind-key-menu {
  61. text-align: left;
  62. padding: 20px;
  63. padding-top: 50px;
  64. position: absolute;
  65. display: none;
  66. background: rgba(0, 0, 0, 0.25);
  67. bottom: 35%;
  68. left: 39.9%;
  69. border-radius: 15px;
  70. width: 325px;
  71. height: 250px;
  72. border: 5px solid #141414;
  73. box-shadow: inset 0 4px 0 #4e5645, inset 0 -4px 0 #384825, 0px 2px 0 5px rgb(20 20 20 / 30%), 0px 0px 0 15px rgb(20 20 20 / 10%);
  74. }
  75.  
  76. .inputTxt {
  77. text-shadow: rgb(20 20 20) 4px 0px 0px, rgb(20 20 20) 3.87565px 0.989616px 0px, rgb(20 20 20) 3.51033px 1.9177px 0px, rgb(20 20 20) 2.92676px 2.72656px 0px, rgb(20 20 20) 2.16121px 3.36588px 0px, rgb(20 20 20) 1.26129px 3.79594px 0px, rgb(20 20 20) 0.282949px 3.98998px 0px, rgb(20 20 20) -0.712984px 3.93594px 0px, rgb(20 20 20) -1.66459px 3.63719px 0px, rgb(20 20 20) -2.51269px 3.11229px 0px, rgb(20 20 20) -3.20457px 2.39389px 0px, rgb(20 20 20) -3.69721px 1.52664px 0px, rgb(20 20 20) -3.95997px 0.56448px 0px, rgb(20 20 20) -3.97652px -0.432781px 0px, rgb(20 20 20) -3.74583px -1.40313px 0px, rgb(20 20 20) -3.28224px -2.28625px 0px, rgb(20 20 20) -2.61457px -3.02721px 0px, rgb(20 20 20) -1.78435px -3.57996px 0px, rgb(20 20 20) -0.843183px -3.91012px 0px, rgb(20 20 20) 0.150409px -3.99717px 0px, rgb(20 20 20) 1.13465px -3.8357px 0px, rgb(20 20 20) 2.04834px -3.43574px 0px, rgb(20 20 20) 2.83468px -2.82216px 0px, rgb(20 20 20) 3.44477px -2.03312px 0px, rgb(20 20 20) 3.84068px -1.11766px 0px, rgb(20 20 20) 3.9978px -0.132717px 0px;
  78. cursor: text;
  79. color: #fff;
  80. vertical-align: middle;
  81. user-select: none;
  82. box-sizing: border-box;
  83. text-align: center;
  84. outline: 0;
  85. display: inline-block;
  86. border: none;
  87. border: 5px solid rgba(0, 0, 0, 0);
  88. box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06);
  89. border-radius: 10px;
  90. transition: all 1s;
  91. }
  92. </style>
  93. <script>
  94. function SupressInput($event) {
  95. $event.preventDefault();
  96. }
  97. let use = false,
  98. codeKey, use2 = false,
  99. codeKey2, use3 = false,
  100. codeKey3, use4 = false,
  101. codeKey4
  102. document.getElementById("boostBind").addEventListener("mousedown", e => {
  103. if (e.button == 0) {
  104. $("#boostBind").val("Select")
  105. use = true
  106. }
  107. if (e.button == 2) {
  108. $("#boostBind").val("...")
  109. use = false
  110. }
  111. })
  112. document.getElementById("boostBind").addEventListener('keydown', e => {
  113. if ($("#boostBind").focus()) {
  114. if (use) {
  115. use = false
  116. codeKey = (e.code).toString()
  117. $("#boostBind").val(codeKey)
  118. }
  119. }
  120. })
  121. document.getElementById("immunityBind").addEventListener("mousedown", e => {
  122. if (e.button == 0) {
  123. $("#immunityBind").val("Select")
  124. use2 = true
  125. }
  126. if (e.button == 2) {
  127. $("#immunityBind").val("...")
  128. use2 = false
  129. }
  130. })
  131. document.getElementById("immunityBind").addEventListener('keydown', e => {
  132. if ($("#immunityBind").focus()) {
  133. if (use2) {
  134. use2 = false
  135. codeKey2 = (e.code).toString()
  136. $("#immunityBind").val(codeKey2)
  137. }
  138. }
  139. })
  140. document.getElementById("berserkerBind").addEventListener("mousedown", e => {
  141. if (e.button == 0) {
  142. $("#berserkerBind").val("Select")
  143. use3 = true
  144. }
  145. if (e.button == 2) {
  146. $("#berserkerBind").val("...")
  147. use3 = false
  148. }
  149. })
  150. document.getElementById("berserkerBind").addEventListener('keydown', e => {
  151. if ($("#berserkerBind").focus()) {
  152. if (use3) {
  153. use3 = false
  154. codeKey3 = (e.code).toString()
  155. $("#berserkerBind").val(codeKey3)
  156. }
  157. }
  158. })
  159. document.getElementById("crystalBind").addEventListener("mousedown", e => {
  160. if (e.button == 0) {
  161. $("#crystalBind").val("Select")
  162. use4 = true
  163. }
  164. if (e.button == 2) {
  165. $("#crystalBind").val("...")
  166. use4 = false
  167. }
  168. })
  169. document.getElementById("crystalBind").addEventListener('keydown', e => {
  170. if ($("#crystalBind").focus()) {
  171. if (use4) {
  172. use4 = false
  173. codeKey4 = (e.code).toString()
  174. $("#crystalBind").val(codeKey4)
  175. }
  176. }
  177. })
  178. </script>
  179. `
  180.  
  181. // Add Menu In HTML Body...
  182. $("body").append(html_MenuCode)
  183.  
  184. // Get Element Hat Store...
  185. let getElement = [document.getElementById("hat-menu"), document.getElementById("hat_menu_content")]
  186.  
  187. // Set Event KeyDown...
  188. document.addEventListener('keydown', (event) => ScrollKeys(event))
  189.  
  190. // Create Reaction Event Click...
  191. let ScrollKeys = (event) => {
  192.  
  193. // If the elements are visible...
  194. if ($('.chat-container').css('display') == "block" ||
  195. $('#clan-menu').css('display') == "block" ||
  196. $('#bind-key-menu').css('display') == "block") return null
  197.  
  198. // Keys Equip hats...
  199. switch (event.code) {
  200. // Crystral Gear...
  201. case $("#crystalBind").val():
  202. getElement[0].style.display = "flex"
  203. getElement[1].scrollTo(0, 75)
  204. break
  205.  
  206. // Berserker Gear...
  207. case $("#berserkerBind").val():
  208. getElement[0].style.display = "flex"
  209. getElement[1].scrollTo(0, 0)
  210. break
  211.  
  212. // Boost Hat...
  213. case $("#boostBind").val():
  214. getElement[0].style.display = "flex"
  215. getElement[1].scrollTo(0, 220)
  216. break
  217.  
  218. // Immunity Gear...
  219. case $("#immunityBind").val():
  220. getElement[0].style.display = "flex"
  221. getElement[1].scrollTo(0, 185)
  222. break
  223. }
  224. }
  225.  
  226. // Duble Click Event...
  227. getElement[0].addEventListener('dblclick', function (e) {
  228. getElement[0].style.display = "none"
  229. })
  230.  
  231. // Change Title Name...
  232. let change_Title = (first = 500, second = 1000, third = 1500, fourth = 1950, time = 2000) => {
  233. if (Date.now() - oldDate >= time) {
  234. if (first_title_mode) {
  235. sleep(first).then(function() {
  236. document.title = "Scr________."
  237. })
  238. sleep(second).then(function() {
  239. document.title = "Scroll_____.."
  240. })
  241. sleep(third).then(function() {
  242. document.title = "ScrollMac__..."
  243. })
  244. sleep(fourth).then(function() {
  245. document.title = "ScrollMacro...."
  246. first_title_mode = false
  247. last_title_mode = true
  248. })
  249. } else if (last_title_mode) {
  250. sleep(first).then(function() {
  251. document.title = "ScrollMacro."
  252. })
  253. sleep(second).then(function() {
  254. document.title = "ScrollMacro.."
  255. })
  256. sleep(third).then(function() {
  257. document.title = "ScrollMacro..."
  258. })
  259. }
  260. oldDate = Date.now()
  261. }
  262. }
  263. window.onload = function() {
  264. setInterval(change_Title, 0.1)
  265. }
  266. })()

QingJ © 2025

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