Mass Macro, Double Split, Triple Split, Quadruple Split, Freeze, FPS Counter, Auto-Respawn

Mass Macro - W(Hold), 2xSplit - 2, 3xSplit - 3, 4xSplit - 4, Freeze Movement - S, Hold ESC in Stats screen to Auto-Respawn.

  1. // ==UserScript==
  2. // @name Mass Macro, Double Split, Triple Split, Quadruple Split, Freeze, FPS Counter, Auto-Respawn
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.4
  5. // @description Mass Macro - W(Hold), 2xSplit - 2, 3xSplit - 3, 4xSplit - 4, Freeze Movement - S, Hold ESC in Stats screen to Auto-Respawn.
  6. // @author Dropped Studios
  7. // @match http://abs0rb.me/*
  8. // @match http://agarx.biz/*
  9. // @match http*://agar.io/*
  10. // @match http://agarabi.com/*
  11. // @match http://agarly.com/*
  12. // @match http://en.agar.bio/*
  13. // @match http://agar.pro/*
  14. // @match http://agario.se/*
  15. // @match http://agar.biz/*
  16. // @match http://bubble.am/*
  17. // @grant none
  18. // @run-at document-end
  19. // ==/UserScript==
  20. window.addEventListener('keydown', keydown);
  21. window.addEventListener('keyup', keyup);
  22. var Feed = false;
  23. var autoSplit = false;
  24. var respawn = false;
  25. var Duration = 5;
  26. var showFps = true;
  27. var autoCoinsActive = false;
  28. var lastLoop = new Date();
  29. let fpsBox = document.createElement("div");
  30. var i;
  31. for (let i=1; i<10; i++) {
  32. setTimeout( function timer(){
  33. eventFire(document.getElementById('statsContinue'), 'click');
  34. }, i*1000 );
  35. }
  36. const hsl = hue => `hsl(${hue},100%,50%)`;
  37. // ** FPS
  38. fpsBox.style = `
  39. position: absolute;
  40. top: 0px;
  41. left: 0px;
  42. color: black;
  43. background: white;
  44. font-family: 'Ubuntu', monospace;
  45. font-weight: 400;
  46. `;
  47. document.body.appendChild(fpsBox);
  48. let frames = 0;
  49. setInterval(() => {
  50. var thisLoop = new Date();
  51. var fps = 1000 / (thisLoop - lastLoop);
  52. lastLoop = thisLoop;
  53. if(autoCoinsActive) {
  54. fpsBox.textContent = frames + " FPS - AutoCoins Active";
  55. }else {
  56. fpsBox.textContent = frames + " FPS";
  57. }
  58. if(frames < 60) {
  59. fpsBox.style.background = hsl(frames * 2);
  60. } else {
  61. fpsBox.style.background = hsl(120);
  62. }
  63. frames = 0;
  64. }, 1E3);
  65. const clearRectOld = CanvasRenderingContext2D.prototype.clearRect;
  66. CanvasRenderingContext2D.prototype.clearRect = function() {
  67. if (this.canvas === window.canvas) {
  68. ++frames;
  69. }
  70. return clearRectOld.apply(this, arguments);
  71. };
  72.  
  73. var instructions = document.getElementById("instructions");
  74. instructions.style.lineHeight = "1";
  75. instructions.style.fontSize = "12.5px";
  76. instructions.style.marginTop = "-30px";
  77. instructions.innerHTML += "<center><span class='text-muted'><span> Press <b>4</b> to split 4x</span></span></center>" +
  78. "<center><span class='text-muted'><span> Press <b>3</b> to split 3x</span></span></center>" +
  79. "<center><span class='text-muted'><span> Press <b>2</b> to split 2x</span></span></center>" +
  80. "<center><span class='text-muted'><span> Press and hold <b>W</b> for macro feed</span></span></center>" +
  81. "<center><span class='text-muted'><span> Press <b>S</b> to freeze movement</span></span></center>";
  82. function keydown(event) {
  83. if (event.keyCode == 69) {
  84. if(autoCoinsActive) {
  85. autoCoinsActive = false;
  86. }else {
  87. autoCoinsActive = true;
  88. }
  89. }
  90. if (event.keyCode == 27) {
  91. respawn = true;
  92. setTimeout(escPlay, Duration);
  93. }
  94. showFps = false;
  95. if (event.keyCode == 32) {
  96. autoSplit = false;
  97. setTimeout(autoSplitFunc, Duration);
  98. }
  99. if (event.keyCode == 87) {
  100. Feed = true;
  101. setTimeout(giveMass, Duration);
  102. }
  103. // Quad Split \/
  104. if (event.keyCode == 52) {
  105. Split();
  106. setTimeout(Split, Duration);
  107. setTimeout(Split, Duration*2);
  108. setTimeout(Split, Duration*3);
  109. }
  110. // Triple Split \/
  111. if (event.keyCode == 51) {
  112. Split();
  113. setTimeout(Split, Duration);
  114. setTimeout(Split, Duration*2);
  115. }
  116. // Double Split \/
  117. if (event.keyCode == 50) {
  118. Split();
  119. setTimeout(Split, Duration);
  120. }
  121. //Freeze \/
  122. if (event.keyCode == 83) {
  123. X = window.innerWidth/2;
  124. Y = window.innerHeight/2;
  125. $("canvas").trigger($.Event("mousemove", {clientX: X, clientY: Y}));
  126. }
  127. }
  128. function keyup(event) {
  129. showFps = true;
  130. if (event.keyCode == 87) {
  131. Feed = false;
  132. }
  133. if (event.keyCode == 32) {
  134. autoSplit = false;
  135. }
  136. if (event.keyCode == 27) {
  137. respawn = false;
  138. }
  139. }
  140. //Mass Macro \/
  141. function giveMass() {
  142. if (Feed) {
  143. window.onkeydown({keyCode: 87});
  144. window.onkeyup({keyCode: 87});
  145. setTimeout(giveMass, Duration);
  146. }
  147. }
  148. function autoSplitFunc() {
  149. if (autoSplit) {
  150. window.onkeydown({keyCode: 32});
  151. window.onkeyup({keyCode: 32});
  152. setTimeout(autoSplitFunc, 50);
  153. }
  154. }
  155. function escPlay() {
  156. if (respawn) {
  157. eventFire(document.getElementById('play'), 'click');
  158. setTimeout(escPlay, Duration);
  159. }
  160. }
  161. function Split() {
  162. $("body").trigger($.Event("keydown", { keyCode: 32}));
  163. $("body").trigger($.Event("keyup", { keyCode: 32}));
  164. }
  165. function eventFire(el, etype){
  166. if (el.fireEvent) {
  167. el.fireEvent('on' + etype);
  168. } else {
  169. var evObj = document.createEvent('Events');
  170. evObj.initEvent(etype, true, false);
  171. el.dispatchEvent(evObj);
  172. }
  173. }

QingJ © 2025

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