Gats.io - 🥷 Cheat Menu (Chandler) 🥷

try to take over the world!, can be updated at any time.

  1. // ==UserScript==
  2. // @name Gats.io - 🥷 Cheat Menu (Chandler) 🥷
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.0
  5. // @description try to take over the world!, can be updated at any time.
  6. // @author Chandler Ax
  7. // @match https://gats.io/
  8. // @match https://gats2.io/
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=gats.io
  10. // @license No licence.
  11. // @grant none
  12. // ==/UserScript==
  13.  
  14. (function () {
  15. "use strict";
  16.  
  17. let server_size = 81;
  18.  
  19. let ui = `
  20. <div class="player_container"></div>
  21. <div class="player_alert" style="display: none;">/</div>
  22. <style>
  23. .player_container {
  24. position: absolute;
  25. left: 1vh;
  26. top: 55%;
  27. transform: translate(0, -50%);
  28. width: 25vh;
  29. height: 45vh;
  30. background-color: rgba(250, 246, 246, 0.5);
  31. box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  32. border-radius: 8px;
  33. overflow: hidden;
  34. z-index: 2;
  35. }
  36.  
  37. .player-list {
  38. overflow-y: auto;
  39. max-height: 100%;
  40. }
  41.  
  42. .player-item {
  43. background-color: #fff;
  44. margin-bottom: 8px;
  45. padding: 10px;
  46. border-radius: 4px;
  47. display: flex;
  48. align-items: center;
  49. justify-content: space-between;
  50. }
  51.  
  52. .player-item.me {
  53. background-color: #ffd700;
  54. }
  55.  
  56. .attack-button {
  57. background-color: #ff4500;
  58. color: #fff;
  59. padding: 5px 10px;
  60. border: none;
  61. border-radius: 4px;
  62. cursor: pointer;
  63. }
  64.  
  65. .defense-button {
  66. background-color: #3498db;
  67. color: #fff;
  68. padding: 5px 10px;
  69. border: none;
  70. border-radius: 4px;
  71. cursor: pointer;
  72. }
  73. </style>
  74. `;
  75.  
  76. let element_ui = document.createElement("div");
  77. element_ui.innerHTML = ui;
  78. document.body.appendChild(element_ui);
  79.  
  80. let canvas = document.getElementById("canvas");
  81. let canvas_1 = document.createElement("canvas");
  82. canvas_1.style.zIndex = 10;
  83. canvas_1.style.position = "absolute";
  84. document.getElementsByTagName("body")[0].appendChild(canvas_1);
  85. let canvas_ovarlay = canvas_1.getContext("2d");
  86.  
  87. setInterval(() => {
  88. const player = RD.pool[c3];
  89. let enemies = Object.values(RD.pool).filter((player) => player.activated && player.id !== RD.pool[c3].id && (!player.teamCode || player.teamCode !== RD.pool[c3].teamCode) && player.hp > 0);
  90.  
  91. if (player !== undefined && player.hp > 0) {
  92. RF.list[0].socket.send(`c, `);
  93. RF.list[0].socket.send(`c,{X: ${player.x} | Y: ${player.y}}`);
  94. const current_players = [];
  95.  
  96. for (let i = 0; i < server_size; i++) {
  97. RD.pool[i].ghillie = 0;
  98. if (RD.pool[i].username !== "" && RD.pool[i].teamCode !== player.teamCode) {
  99. current_players.push(RD.pool[i].username);
  100. }
  101. if (RD.pool[i].username !== "" && RD.pool[i].teamCode == player.teamCode) {
  102. // player sn the same team
  103. }
  104. }
  105.  
  106. const players_element = document.querySelector(".player_container");
  107. players_element.innerHTML = "";
  108.  
  109. const player_element = document.createElement("div");
  110. player_element.className = "player-item me";
  111. player_element.textContent = `1. ${player.username}`;
  112.  
  113. const defense_element = document.createElement("button");
  114. defense_element.className = "defense-button";
  115. defense_element.textContent = "Defense";
  116. defense_element.addEventListener("click", () => defense_me());
  117.  
  118. player_element.appendChild(defense_element);
  119. players_element.appendChild(player_element);
  120.  
  121. const playerList = document.createElement("div");
  122. playerList.className = "player-list";
  123.  
  124. current_players.forEach((username, index) => {
  125. const player_element = document.createElement("div");
  126. player_element.className = "player-item";
  127. player_element.textContent = `${index + 2}. ${username}`;
  128.  
  129. const attack_element = document.createElement("button");
  130. attack_element.className = "attack-button";
  131. attack_element.textContent = "Attack";
  132. attack_element.addEventListener("click", () => attack_player(username));
  133.  
  134. player_element.appendChild(attack_element);
  135. playerList.appendChild(player_element);
  136. });
  137. player.isLeader = 1;
  138. player.isPremiumMember = 1;
  139. player.color.a = "gold";
  140. canvas_1.width = canvas.width;
  141. canvas_1.height = canvas.height;
  142. let plr_screen_position = c2.getRelPos(RD.pool[c3]);
  143. plr_screen_position.x *= j5;
  144. plr_screen_position.y *= j5;
  145. canvas_ovarlay.strokeStyle = "blue";
  146. canvas_ovarlay.lineWidth = 2;
  147. canvas_ovarlay.clearRect(0, 0, canvas_1.width, canvas_1.height);
  148. for (let i = 0; i < enemies.length; i++) {
  149. let diX = enemies[i].x - RD.pool[c3].x + plr_screen_position.x;
  150. let diY = enemies[i].y - RD.pool[c3].y + plr_screen_position.y;
  151. canvas_ovarlay.strokeRect(diX - 30 / 2, diY - 30 / 2, 30, 30);
  152. a57({ clientX: diX, clientY: diY });
  153. }
  154. players_element.appendChild(playerList);
  155. } else {
  156. canvas_1.width = 0;
  157. canvas_1.height = 0;
  158. }
  159. }, 30);
  160.  
  161. window.addEventListener("wheel", function (event_packet) {
  162. let sens_base = 1;
  163.  
  164. if (Math.sign(event_packet.deltaY) == 1) {
  165. j7 *= sens_base + 0.05;
  166. j8 *= sens_base + 0.05;
  167. a1();
  168. }
  169.  
  170. if (Math.sign(event_packet.deltaY) == -1) {
  171. j7 *= sens_base - 1 + 0.95;
  172. j8 *= sens_base - 1 + 0.95;
  173. a1();
  174. }
  175. });
  176.  
  177. let message_mem = true;
  178.  
  179. const showMessage = (data) => {
  180. if (!message_mem) return;
  181. const message_element = document.querySelector(".player_alert");
  182. message_element.style.display = "block";
  183. message_element.innerHTML = data;
  184. message_mem = false;
  185.  
  186. setTimeout(() => {
  187. message_element.style.display = "none";
  188. message_element.innerHTML = "/";
  189. message_mem = true;
  190. }, 3000);
  191. };
  192.  
  193. const attack_player = (user) => {
  194. console.log(user);
  195. };
  196.  
  197. const defense_me = () => {
  198. console.log(RD.pool[c3].username);
  199. };
  200. })();

QingJ © 2025

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