Greasy Fork镜像 支持简体中文。

Macro AGMA.IO

Editado por EmersonxD

  1. // ==UserScript==
  2. // @name Macro AGMA.IO
  3. // @namespace https://gf.qytechs.cn/pt-BR/users/305931-emerson-bardusco
  4. // @version 6.1
  5. // @license MIT
  6. // @description Editado por EmersonxD
  7. // @author EmersonxD
  8. // @match http://agma.io/*
  9. // @grant none
  10. // @run-at document-end
  11. // ==/UserScript==
  12.  
  13. (function () {
  14. 'use strict';
  15.  
  16. // Configurações globais
  17. const FEEDING_KEY = 'W';
  18. const FEEDING_INTERVAL = 20;
  19. const SPLIT_KEY = 'Space';
  20. const SPLIT_INTERVAL = 50;
  21. const SPLIT_COUNT_KEY = 'Q';
  22. const SPLIT_COUNT_DEFAULT = 4;
  23. const CUSTOM_SPLIT_COUNT_PROMPT = 'Digite a quantidade de vezes que deseja dividir a célula:';
  24. const CUSTOM_SPLIT_COUNT_MIN = 2;
  25. const MOVE_KEY = 'Shift';
  26. const MOVE_KEY_ALT = '4';
  27. const FEED_MOUSE_KEY = 'R';
  28. const FEED_MOUSE_MESSAGE = 'nick';
  29.  
  30. // Variáveis globais
  31. let feeding = false;
  32. let splitCount = SPLIT_COUNT_DEFAULT;
  33.  
  34. // Função para alimentar a célula
  35. function feed() {
  36. if (feeding) {
  37. const eventKeyDown = new KeyboardEvent('keydown', { keyCode: getKeyCode(FEEDING_KEY) });
  38. const eventKeyUp = new KeyboardEvent('keyup', { keyCode: getKeyCode(FEEDING_KEY) });
  39. document.dispatchEvent(eventKeyDown);
  40. document.dispatchEvent(eventKeyUp);
  41. setTimeout(feed, FEEDING_INTERVAL);
  42. }
  43. }
  44.  
  45. // Função para dividir a célula em várias partes
  46. function split() {
  47. const eventKeyDown = new KeyboardEvent('keydown', { keyCode: getKeyCode(SPLIT_KEY) });
  48. const eventKeyUp = new KeyboardEvent('keyup', { keyCode: getKeyCode(SPLIT_KEY) });
  49. document.dispatchEvent(eventKeyDown);
  50. document.dispatchEvent(eventKeyUp);
  51. }
  52.  
  53. // Função para executar o truque de divisão
  54. function doSplitTrick() {
  55. split();
  56. setTimeout(split, SPLIT_INTERVAL);
  57. setTimeout(split, SPLIT_INTERVAL * 2);
  58. setTimeout(split, SPLIT_INTERVAL * 3);
  59. }
  60.  
  61. // Função para executar a divisão personalizada
  62. function doCustomSplit() {
  63. splitCount = prompt(CUSTOM_SPLIT_COUNT_PROMPT, splitCount);
  64. splitCount = parseInt(splitCount, 10);
  65. if (isNaN(splitCount) || splitCount < CUSTOM_SPLIT_COUNT_MIN) {
  66. alert(`A quantidade de divisão deve ser um número maior ou igual a ${CUSTOM_SPLIT_COUNT_MIN}.`);
  67. return;
  68. }
  69. for (let i = 0; i < splitCount; i++) {
  70. split();
  71. }
  72. }
  73.  
  74. // Função para mover a célula para o centro da tela
  75. function moveToCenter() {
  76. const x = window.innerWidth / 2;
  77. const y = window.innerHeight / 2;
  78. const eventMouseMove = new MouseEvent('mousemove', { clientX: x, clientY: y });
  79. document.querySelector('canvas').dispatchEvent(eventMouseMove);
  80. }
  81.  
  82. // Função para executar a ação do botão do mouse
  83. function doFeedMouse() {
  84. const nick = document.getElementById(FEED_MOUSE_MESSAGE).value;
  85. const eventRspwn = new CustomEvent('rspwn', { detail: { nick } });
  86. document.dispatchEvent(eventRspwn);
  87. }
  88.  
  89. // Função para lidar com a tecla pressionada
  90. function onKeyDown(event) {
  91. switch (getKeyCode(event)) {
  92. case getKeyCode(FEEDING_KEY):
  93. feeding = true;
  94. feed();
  95. break;
  96. case getKeyCode(MOVE_KEY):
  97. case getKeyCode(MOVE_KEY_ALT):
  98. moveToCenter();
  99. break;
  100. case getKeyCode(SPLIT_KEY):
  101. split();
  102. break;
  103. case getKeyCode(SPLIT_COUNT_KEY):
  104.  
  105. doCustomSplit();
  106.  
  107. break;
  108.  
  109. case getKeyCode(FEED_MOUSE_KEY):
  110.  
  111. doFeedMouse();
  112.  
  113. break;
  114.  
  115. default:
  116.  
  117. break;
  118.  
  119. }
  120.  
  121. }
  122.  
  123.  
  124. // Função para lidar com a tecla solta
  125.  
  126. function onKeyUp(event) {
  127.  
  128. if (getKeyCode(event) === getKeyCode(FEEDING_KEY)) {
  129.  
  130. feeding = false;
  131.  
  132. }
  133.  
  134. }
  135.  
  136.  
  137. // Função para obter o código da tecla
  138.  
  139. function getKeyCode(event) {
  140.  
  141. return event.keyCode || event.which;
  142.  
  143. }
  144.  
  145.  
  146. // Função para adicionar event listeners para as teclas pressionadas e soltas
  147.  
  148. function addEventListeners() {
  149.  
  150. document.addEventListener('keydown', onKeyDown);
  151.  
  152. document.addEventListener('keyup', onKeyUp);
  153.  
  154. }
  155.  
  156.  
  157. // Função para inicializar o script
  158.  
  159. function init() {
  160.  
  161. addEventListeners();
  162.  
  163. }
  164.  
  165.  
  166. // Inicializa o script quando a página é carregada
  167.  
  168. window.addEventListener('load', init);
  169.  
  170. })();

QingJ © 2025

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