melon client || bloxd.io cheats

like steroids for bloxd.io

目前为 2024-12-20 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name melon client || bloxd.io cheats
  3. // @namespace http://bloxd.io
  4. // @version 2024-12-20
  5. // @description like steroids for bloxd.io
  6. // @author officiallymelon
  7. // @match https://bloxd.io/
  8. // @icon https://github.com/OfficiallyMelon/files-cdn/blob/main/bloxd_io/melon.png?raw=true
  9. // @grant none
  10. // @run-at document-start
  11. // @license GPL-3.0-or-later
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. (() => {
  16. const img = document.createElement('img');
  17. img.src = 'https://github.com/OfficiallyMelon/files-cdn/blob/main/Credits.png?raw=true';
  18. img.style.position = 'fixed';
  19. img.style.bottom = '10px';
  20. img.style.right = '10px';
  21. img.style.width = '350px';
  22. img.style.height = 'auto';
  23. img.style.zIndex = '10000';
  24. document.body.appendChild(img);
  25. })();
  26.  
  27. const loadGoogleFont = (fontName) => {
  28. const link = document.createElement('link');
  29. link.href = `https://fonts.googleapis.com/css2?family=${fontName.replace(/ /g, '+')}`;
  30. link.rel = 'stylesheet';
  31. document.head.appendChild(link);
  32. };
  33. loadGoogleFont('Roboto');
  34.  
  35. const MelonMenu = () => {
  36. alert('Thank you for using Melon Client (cheats), we require local overrides to be added for this cheat to work, you can find more info on the greasyfork description.')
  37. const menu = document.createElement('div');
  38. menu.style.position = 'fixed';
  39. menu.style.top = '20px';
  40. menu.style.left = '20px';
  41. menu.style.width = '500px';
  42. menu.style.backgroundColor = '#F7B2BD';
  43. menu.style.border = '2px solid #ffffff';
  44. menu.style.color = '#ffffff';
  45. menu.style.fontFamily = "'Roboto', Arial, sans-serif";
  46. menu.style.fontSize = '14px';
  47. menu.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.5)';
  48. menu.style.borderRadius = '8px';
  49. menu.style.zIndex = '10000';
  50. menu.style.padding = '10px';
  51. menu.style.cursor = 'move';
  52.  
  53. const tabs = ['Combat', 'Player', 'Movement'];
  54. const tabContainer = document.createElement('div');
  55. tabContainer.style.display = 'flex';
  56. tabContainer.style.justifyContent = 'space-around';
  57. tabContainer.style.backgroundColor = '#E34A6F';
  58. tabContainer.style.padding = '5px';
  59. tabContainer.style.borderRadius = '5px 5px 0 0';
  60. tabContainer.style.marginBottom = '10px';
  61.  
  62. tabs.forEach((tab) => {
  63. const tabElement = document.createElement('div');
  64. tabElement.textContent = tab;
  65. tabElement.style.color = '#ffffff';
  66. tabElement.style.cursor = 'pointer';
  67. tabElement.style.padding = '5px 10px';
  68. tabElement.style.fontWeight = 'bold';
  69. tabElement.style.borderRadius = '4px';
  70. tabElement.style.transition = 'background-color 0.3s';
  71. tabElement.style.fontFamily = "'Roboto', Arial, sans-serif";
  72. tabContainer.appendChild(tabElement);
  73. });
  74.  
  75. menu.appendChild(tabContainer);
  76.  
  77. const columnsContainer = document.createElement('div');
  78. columnsContainer.style.display = 'flex';
  79. columnsContainer.style.justifyContent = 'space-between';
  80. columnsContainer.style.gap = '10px';
  81.  
  82. const columnData = [
  83. ['Anti Knockback', 'Anti Cam Shake', 'Reach', 'Auto Clicker'],
  84. ['Scaffold', 'Account Gen'],
  85. ['Speed', 'High Jump', 'Infinite Jump', 'Secure Edge'],
  86. ];
  87.  
  88. const loadButtonStates = () => {
  89. return JSON.parse(localStorage.getItem('buttonStates') || '{}');
  90. };
  91.  
  92. const saveButtonStates = (states) => {
  93. localStorage.setItem('buttonStates', JSON.stringify(states));
  94. };
  95.  
  96. const buttonStates = loadButtonStates();
  97. const buttonsMap = {};
  98.  
  99. columnData.forEach((columnItems) => {
  100. const column = document.createElement('div');
  101. column.style.flex = '1';
  102. column.style.backgroundColor = '#F7B2BD';
  103. column.style.padding = '0px';
  104. column.style.borderRadius = '0px';
  105.  
  106. columnItems.forEach((item) => {
  107. const itemElement = document.createElement('div');
  108. itemElement.textContent = item;
  109. itemElement.style.backgroundColor = buttonStates[item] ? '#4E954F' : '#F7B2BD';
  110. itemElement.style.margin = '0px 0';
  111. itemElement.style.padding = '5px';
  112. itemElement.style.borderRadius = '0px';
  113. itemElement.style.textAlign = 'center';
  114. itemElement.style.cursor = 'pointer';
  115. itemElement.style.transition = 'background-color 0.1s';
  116. itemElement.style.fontFamily = "'Roboto', Arial, sans-serif";
  117.  
  118. let isSelected = !!buttonStates[item];
  119.  
  120. itemElement.onmouseover = () => {
  121. if (!isSelected) itemElement.style.backgroundColor = '#4E954F';
  122. };
  123. itemElement.onmouseout = () => {
  124. if (!isSelected) itemElement.style.backgroundColor = '#F7B2BD';
  125. };
  126.  
  127. itemElement.onclick = () => {
  128. isSelected = !isSelected;
  129. itemElement.style.backgroundColor = isSelected ? '#4E954F' : '#F7B2BD';
  130. buttonStates[item] = isSelected;
  131. saveButtonStates(buttonStates);
  132.  
  133. // Apply the button actions based on saved state
  134. if (item === 'Account Gen') {
  135. document.cookie.split(';').forEach((cookie) => {
  136. if (cookie.trim().startsWith('___Secure-3PSIDMC=')) {
  137. document.cookie = cookie.split('=')[0] + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/';
  138. }
  139. });
  140. location.reload();
  141. }
  142. if (item === 'Speed') {
  143. window.GlobalSpeed = isSelected ? 7.5 : 5;
  144. }
  145. if (item === 'Infinite Jump') {
  146. window.AirJump = isSelected ? 999999999999 : 0;
  147. }
  148. if (item === 'High Jump') {
  149. window.JumpAmount = isSelected ? 3 : 0;
  150. }
  151. if (item === 'Reach') {
  152. window.reach = isSelected ? 25 : 1;
  153. }
  154. if (item === 'Scaffold') {
  155. window.scaffold = isSelected ? true : false;
  156. }
  157. if (item == 'Anti Knockback') {
  158. window.antiknock = isSelected ? true : false;
  159. }
  160. if (item == 'Anti Cam Shake') {
  161. window.camshake = isSelected ? true : false;
  162. }
  163. if (item == 'Secure Edge') {
  164. window.preventfalloff = isSelected ? true : false;
  165. }
  166. if (item == 'Auto Clicker') {
  167. window.autoclick = isSelected ? true : false
  168. }
  169. };
  170.  
  171. column.appendChild(itemElement);
  172. buttonsMap[item] = itemElement;
  173.  
  174. // Apply initial button state to global variables when the page loads
  175. if (buttonStates[item]) {
  176. itemElement.click();
  177. }
  178. });
  179.  
  180. columnsContainer.appendChild(column);
  181. });
  182.  
  183. menu.appendChild(columnsContainer);
  184.  
  185. let isDragging = false;
  186. let offsetX, offsetY;
  187.  
  188. menu.addEventListener('mousedown', (e) => {
  189. isDragging = true;
  190. offsetX = e.clientX - menu.offsetLeft;
  191. offsetY = e.clientY - menu.offsetTop;
  192. menu.style.transition = 'none';
  193. });
  194.  
  195. document.addEventListener('mousemove', (e) => {
  196. if (isDragging) {
  197. menu.style.left = `${e.clientX - offsetX}px`;
  198. menu.style.top = `${e.clientY - offsetY}px`;
  199. }
  200. });
  201.  
  202. document.addEventListener('mouseup', () => {
  203. isDragging = false;
  204. });
  205.  
  206. document.body.appendChild(menu);
  207.  
  208. document.addEventListener('keydown', (e) => {
  209. if (e.ctrlKey && e.key.toLowerCase() === 'c') {
  210. const scaffoldButton = buttonsMap['Scaffold'];
  211. if (scaffoldButton) {
  212. scaffoldButton.click();
  213. }
  214. }
  215. });
  216. };
  217. MelonMenu();
  218. })();