i30cps' Utility Mod

ESC = Mod Menu, V=Hold Spike, L = Console Command. Features: Increases FPS, Blocks Ads, Biome Map, CPS Viewer (by CyRuler#3691), and more! This is a utility mod, not a hack. Made by i30cps.

目前为 2021-04-07 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name i30cps' Utility Mod
  3. // @author i30cps
  4. // @version 1.3.2 - Wrong Discord
  5. // @description ESC = Mod Menu, V=Hold Spike, L = Console Command. Features: Increases FPS, Blocks Ads, Biome Map, CPS Viewer (by CyRuler#3691), and more! This is a utility mod, not a hack. Made by i30cps.
  6. // @match *://moomoo.io/*
  7. // @match *://sandbox.moomoo.io/*
  8. // @match *://dev.moomoo.io/*
  9. // @match *://abc.moomoo.io/*
  10. // @icon data:image/png;base64,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
  11. // @require https://gf.qytechs.cn/scripts/423602-msgpack/code/msgpack.js?version=912797
  12. // @require http://code.jquery.com/jquery-3.3.1.min.js
  13. // @require https://code.jquery.com/ui/1.12.0/jquery-ui.min.js
  14. // @require https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.js
  15. // @namespace -
  16. // ==/UserScript==
  17.  
  18. //Start edit
  19.  
  20. console.log("The mod is working.");
  21.  
  22. var fh = false
  23. let servers,
  24. elemSet = Object.getOwnPropertyDescriptor(Element.prototype, 'innerHTML').set;
  25. Object.defineProperty(window, 'vultr', {
  26. set: (data) => {
  27. data.servers.forEach(server => server.games.forEach(game => game.playerCount = 0 - game.playerCount));
  28. servers = data
  29. },
  30. get: () => servers
  31. });
  32. Object.defineProperty(Element.prototype, 'innerHTML', {
  33. set(data) {
  34. this.id === 'serverBrowser' && (data = data.replace(/-(\d)/g, '$1'))
  35. return elemSet.call(this, data);
  36. }
  37. });
  38. localStorage.moofoll = !0;
  39. $("#gameCanvas").css('cursor', 'url(http://cur.cursors-4u.net/user/use-1/use153.cur), default');
  40. $("#enterGame").css('cursor', 'url(http://cur.cursors-4u.net/user/use-1/use153.cur), default');
  41. document.getElementById("storeHolder").style = "height: 1500px; width: 450px;"
  42. $("followText").remove();
  43. document.getElementById('loadingText').innerHTML = 'Spinning...';
  44. document.getElementById('gameName').innerHTML = '★MooSpin★';
  45. document.getElementById("leaderboard").append('MooSpin');;
  46. document.getElementById('errorNotification').remove();
  47. //more fps:
  48. window.location.native_resolution = true;
  49. document.getElementById("pingDisplay").remove();
  50. $("#enterGame").click( () => {
  51. if (fh == false) {
  52. fh = true
  53. } else {
  54. fh = false
  55. }
  56. })
  57. $("#consentBlock").css({display: "none"});
  58. $("#youtuberOf").css({display: "none"});
  59. $("#mapDisplay").css({background: `url('https://i.imgur.com/fgFsQJp.png')`});
  60. document.getElementById("moomooio_728x90_home").style.display = "none";
  61. $("#moomooio_728x90_home").parent().css({display: "none"});
  62. document.getElementById("linksContainer2").innerHTML = `<a href="https://www.youtube.com/" target="_blank" class="menuLink">YouTube</a> | <a href="https://discord.com/channels/@me" target="_blank" class="menuLink"> Discord </a> | <a href="https://gf.qytechs.cn/en/scripts/396859-moojax-bots-autoattack-featured-hacker" target="_blank" class="menuLink"> Little Bots </a> `
  63. //Edit end
  64. try {
  65. document.getElementById("moomooio_728x90_home").style.display = "none"; //Remove sidney's ads
  66. $("#moomooio_728x90_home").parent().css({display: "none"});
  67. } catch (e) {
  68. console.log("error removing ad");
  69. }
  70.  
  71.  
  72. let mouseX;
  73. let mouseY;
  74.  
  75. let width;
  76. let height;
  77.  
  78. var animateyorn = false;
  79.  
  80. setInterval(() => {
  81.  
  82. if(messageToggle == 1) {
  83. doNewSend(["ch", [animate(true, animateyorn)]])
  84. }
  85. }, 200);
  86.  
  87. setInterval(() => {
  88. if(autoaim == true) {
  89. doNewSend(["2", [nearestEnemyAngle]]);
  90. }
  91. }, 0);
  92.  
  93. setInterval(() => {
  94. if(false) {
  95. if(oldHat != normalHat) {
  96. hat(normalHat);
  97. console.log("Tried. - Hat")
  98. }
  99. if(oldAcc != normalAcc) {
  100. acc(normalAcc);
  101. console.log("Tried. - Accessory")
  102. }
  103. oldHat = normalHat;
  104. oldAcc = normalAcc
  105. }
  106. }, 25);
  107.  
  108. function normal() {
  109. hat(normalHat);
  110. acc(normalAcc);
  111. }
  112.  
  113. function aim(x, y){
  114. var cvs = document.getElementById("gameCanvas");
  115. cvs.dispatchEvent(new MouseEvent("mousemove", {
  116. clientX: x,
  117. clientY: y
  118.  
  119. }));
  120. }
  121.  
  122. let coreURL = new URL(window.location.href);
  123. window.sessionStorage.force = coreURL.searchParams.get("fc");
  124.  
  125. var nearestEnemy;
  126. var nearestEnemyAngle;
  127. var isEnemyNear;
  128. var instaSpeed = 230;
  129. var primary;
  130. var instapike = true;
  131. var instaCHAT = true;
  132. var secondary;
  133. var MooJaxAntiAds = true;
  134. var foodType;
  135. var wallType;
  136. var spikeType;
  137. var millType;
  138. var mineType;
  139. var boostType;
  140. var fdng = true;
  141. var turretType;
  142. var spawnpadType;
  143. var autoaim = false;
  144. var tick = 1;
  145. var oldHat;
  146. var oldAcc;
  147. var enemiesNear;
  148. var normalHat;
  149. var normalAcc;
  150. var ws;
  151. var searchp = true;
  152. var msgpack5 = msgpack;
  153. var boostDir;
  154. var boostDir1;
  155. let myPlayer = {
  156. id: null,
  157. x: null,
  158. y: null,
  159. dir: null,
  160. object: null,
  161. weapon: null,
  162. clan: null,
  163. isLeader: null,
  164. hat: null,
  165. accessory: null,
  166. isSkull: null
  167. };
  168.  
  169. let healSpeed = 100;
  170. var messageToggle = 0;
  171. var clanToggle = 0;
  172. let healToggle = 0;
  173. let hatToggle = 1;
  174.  
  175. //var PRIMARY;
  176. var SECONDARY = "r";
  177. //var HEAL;
  178. //var WALL;
  179. var SPIKE = "v";
  180. var BOOST = "f";
  181. var MILL = "z";
  182. var TURRET = "g";
  183. //var MINE;
  184. //var SPAWNPAD;
  185.  
  186. document.msgpack = msgpack;
  187. function n(){
  188. this.buffer = new Uint8Array([0]);
  189. this.buffer.__proto__ = new Uint8Array;
  190. this.type = 0;
  191. }
  192.  
  193. WebSocket.prototype.oldSend = WebSocket.prototype.send;
  194. WebSocket.prototype.send = function(m){
  195. if (!ws){
  196. document.ws = this;
  197.  
  198. ws = this;
  199. socketFound(this);
  200. }
  201. this.oldSend(m);
  202. };
  203.  
  204.  
  205. function socketFound(socket){
  206. socket.addEventListener('message', function(message){
  207. handleMessage(message);
  208. });
  209. }
  210.  
  211. function handleMessage(m){
  212. let temp = msgpack5.decode(new Uint8Array(m.data));
  213. let data;
  214. if(temp.length > 1) {
  215. data = [temp[0], ...temp[1]];
  216. if (data[1] instanceof Array){
  217. data = data;
  218. }
  219. } else {
  220. data = temp;
  221. }
  222. let item = data[0];
  223. if(!data) {return};
  224.  
  225. if(item === "io-init") {
  226. let cvs = document.getElementById("gameCanvas");
  227. width = cvs.clientWidth;
  228. height = cvs.clientHeight;
  229. $(window).resize(function() {
  230. width = cvs.clientWidth;
  231. height = cvs.clientHeight;
  232. });
  233. cvs.addEventListener("mousemove", e => {
  234. mouseX = e.clientX;
  235. mouseY = e.clientY;
  236. });
  237. }
  238.  
  239. if (item == "1" && myPlayer.id == null){
  240. myPlayer.id = data[1];
  241. }
  242.  
  243. if (item == "33") {
  244. enemiesNear = [];
  245. for(let i = 0; i < data[1].length / 13; i++) {
  246. let playerInfo = data[1].slice(13*i, 13*i+13);
  247. if(playerInfo[0] == myPlayer.id) {
  248. myPlayer.x = playerInfo[1];
  249. myPlayer.y = playerInfo[2];
  250. myPlayer.dir = playerInfo[3];
  251. myPlayer.object = playerInfo[4];
  252. myPlayer.weapon = playerInfo[5];
  253. myPlayer.clan = playerInfo[7];
  254. myPlayer.isLeader = playerInfo[8];
  255. myPlayer.hat = playerInfo[9];
  256. myPlayer.accessory = playerInfo[10];
  257. myPlayer.isSkull = playerInfo[11];
  258. } else if(playerInfo[7] != myPlayer.clan || playerInfo[7] === null) {
  259. enemiesNear.push(playerInfo);
  260. }
  261. }
  262. }
  263.  
  264. isEnemyNear = false;
  265. if(enemiesNear) {
  266. nearestEnemy = enemiesNear.sort((a,b) => dist(a, myPlayer) - dist(b, myPlayer))[0];
  267. }
  268. if(nearestEnemy) {
  269. nearestEnemyAngle = Math.atan2(nearestEnemy[2]-myPlayer.y, nearestEnemy[1]-myPlayer.x);
  270. if(Math.sqrt(Math.pow((myPlayer.y-nearestEnemy[2]), 2) + Math.pow((myPlayer.x-nearestEnemy[1]), 2)) < 300) {
  271. isEnemyNear = true;
  272. console.log("Enemy near.");
  273. if(autoaim == false && myPlayer.hat != 7 && myPlayer.hat != 53) {
  274. normalHat = 6;
  275. if(primary != 8) {
  276. normalAcc = 21;
  277. }
  278. };
  279. }
  280. }
  281. if(isEnemyNear == false && autoaim == false) {
  282. normalAcc = 11;
  283. if (myPlayer.y < 2400){
  284. normalHat = 15;
  285. } else if (myPlayer.y > 6850 && myPlayer.y < 7550){
  286. normalHat = 31;
  287. } else {
  288. normalHat = 12;
  289. }
  290. }
  291. if (!nearestEnemy) {
  292. nearestEnemyAngle = myPlayer.dir;
  293. }
  294. if(item == "h" && data[1] == myPlayer.id) {
  295. if(data[2] < 100 && data[2] > 0 && healToggle == 1) {}
  296. }
  297. update();
  298. }
  299.  
  300.  
  301. function doNewSend(sender){
  302. ws.send(new Uint8Array(Array.from(msgpack5.encode(sender))));
  303. }
  304.  
  305. function acc(id) {
  306. doNewSend(["13c", [0, 0, 1]]);
  307. doNewSend(["13c", [0, id, 1]]);
  308. }
  309.  
  310. function hat(id) {
  311. doNewSend(["13c", [0, id, 0]]);
  312. }
  313.  
  314. function placeF(id, angle = Math.atan2(mouseY - height / 2, mouseX - width / 2)) {
  315. doNewSend(["5", [id, null]]);
  316. doNewSend(["c", [1, angle]]);
  317. doNewSend(["c", [0, angle]]);
  318. doNewSend(["5", [id, null]]);
  319. doNewSend(["c", [1, angle]]);
  320. doNewSend(["c", [0, angle]]);
  321. doNewSend(["5", [myPlayer.weapon, true]]);
  322. }
  323.  
  324. function place(id, angle = Math.atan2(mouseY - height / 2, mouseX - width / 2)) {
  325. doNewSend(["5", [id, null]]);
  326. doNewSend(["c", [1, angle]]);
  327. doNewSend(["c", [0, angle]]);
  328. doNewSend(["5", [myPlayer.weapon, true]]);
  329. }
  330.  
  331. function slot(id) {
  332. doNewSend(["5", [id, null]])
  333. }
  334. var repeater = function(key, action, interval) {
  335. let _isKeyDown = false;
  336. let _intervalId = undefined;
  337.  
  338. return {
  339. start(keycode) {
  340. if(keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') {
  341. _isKeyDown = true;
  342. if(_intervalId === undefined) {
  343. _intervalId = setInterval(() => {
  344. action();
  345. if(!_isKeyDown){
  346. clearInterval(_intervalId);
  347. _intervalId = undefined;
  348. console.log("claered");
  349. }
  350. }, interval);
  351. }
  352. }
  353. },
  354.  
  355. stop(keycode) {
  356. if(keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') {
  357. _isKeyDown = false;
  358. }
  359. }
  360. };
  361.  
  362.  
  363. }
  364.  
  365. function katana() {
  366. doNewSend([6, [4]])
  367. }
  368.  
  369. document.addEventListener('keydown', (e)=>{
  370. if (e.keyCode == 46 && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  371. const EDITION = 0;
  372.  
  373. var head = document.getElementsByTagName('head')[0];
  374. var icon = document.createElement('link');
  375.  
  376. icon.setAttribute('type', 'image/png');
  377. icon.setAttribute('rel', 'shortcut icon');
  378.  
  379. if (EDITION == 0) icon.setAttribute('href', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAMAAABrrFhUAAAAA3NCSVQICAjb4U/gAAABHVBMVEX///9FRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUXt7e3r6+vp6enn5+fl5eXj4+Ph4eHf39/d3d3b29vZ2dnX19fV1dXT09PR0dHPz8/MzMzJycnHx8fFxcXDw8PBwcG/v7+9vb27u7u5ubm3t7e1tbWzs7OxsbGvr6+tra2rq6upqamnp6elpaWjo6OhoaGfn5+dnZ2ZmZmVlZWTk5ORkZGPj4+NjY2Li4uJiYmHh4eFhYWDg4OBgYF+fn58fHx6enp4eHh2dnZ0dHRycnJwcHBubm5sbGxqampmZmZiYmJgYGBeXl5cXFxaWlpYWFhWVlZUVFRSUlJQUFBOTk5MTExKSkpISEhGRkZFRUUChAOfAAAAX3RSTlMAESIzRFVmd4iZqrvM3e7//////////////////////////////////////////////////////////////////////////////////////////////////////////4gnOa8AAAAJcEhZcwAACpwAAAqcAfTS3xIAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAFnRFWHRDcmVhdGlvbiBUaW1lADAzLzE3LzE3CP1IFgAADiFJREFUeJztnXsjG00XwJ8gaULYhLRudSlFL4RS9PKUVsuDEooIkc33/xiviMjuOWdusTOz+s7vX8maM5k9c25z5p9/HA6Hw+FwOBwOh8PhcDgcDofD4XA4HHpIdCdT6Uxftr9/oP7AQH9/ti+TTiW7E7bHp5FEdyqTDUhNM5DNpP7CaehKZrIi0YNkM8m/ZxK6Upl+FeFb9GdSXbbH/mi6Ur3CRc9joPcpT0Kys18erYR0t21JOqE7/aif/qnPQUpJ5cmQTdmWSZ5EOmrpm6SfxsaQyOgRv0HmCUyBpl+/Rdq2fAKe6RW/wTPbMnKIXvVRxFcdanz5w2RsS0qSjMTqkSObtC0txtjP3yRui6BH+u2/Lv36d70492pipJD37skXRiZezRXX//1VupZ9TjZWtqGU8q8efVt59dwT8GJmZeu4KvO8GG0H4r2/8nN1KieSvU1ueu1XRfjQ2NgE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');
  380. if (EDITION == 1) icon.setAttribute('href', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAMAAABrrFhUAAAAA3NCSVQICAjb4U/gAAABNVBMVEX///9FRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUXfxlXdxFXcw1Xbw1XZwVTawVTXv1TVvVTTvFTSu1TPuVPRuVLNt1PLtVPJtFPIs1PGsVLFsVLEr1LDrlLBrVK/q1K9qlG6p1G5plG3pVG1o1CyoVCxoFCvnlCtnVCsm1CqmU+nl0+llU+jlE+hkk+gkU6fkE6dj06bjU6Yi06Zi06XiU2Uh02RhU2Pg02NgUyLgEyJfkyIfUyFe0yDeUuBeEt9dEt8c0t4cEp2bkp0bEpyakpwaUpuZ0ltZklqZEloYklmYUhmYEhlYEhjXkhiXUhgXEheWkhbWEdaV0dYVUdWU0dVUkdSUEZPTkZQTkZNTEZOTEZMS0ZKSkZKSUZISEVFRUVGRkXhDf0HAAAAZ3RSTlMAESIzRFVmd4iZqrvM3e7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9O0EYAAAAAlwSFlzAAAKnAAACpwB9NLfEgAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDMvMTcvMTcI/UgWAAAJuElEQVR4nO2de1/URhSG5RKuC7NgVXBRRClaa3XFirRY74ooxVK8K1Jgk+//EbrLwrLJe+aWzCT8wnn+JLPhzOTM7cybkzNnGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGMYFfQMjY2E4NjLQV7QlBdA3ODIedhgfGTxVjdA71FX5TiMM9RZtV14MY+3bDBVtWS70VWT1D8PKKegIg/Lqtxgo2j7P9Iyo6x+GIz1F2+iTHoX7d7pBmVtA+/wPfKBoK/2h6f9HlHYc6DOrfxiWdS4wGADaVIq21A/S9Q9SyhVRr3n9w7CMq2ILByinC9jUPwyLttY9/XYN0F+0vc6h1gCbi7WJau3ev8SlwaLtdc4o1HGvLg6p78HF0aLtdQ6EQPbmRYefoQXGi7bXNbgK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');
  381.  
  382. head.appendChild(icon);
  383. }
  384. if(e.keyCode == 38 && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  385. messageToggle = (messageToggle + 1) % 2;
  386. }
  387. if(e.key == "\\" && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  388. doNewSend(["6", [4]]);
  389. }
  390. if(e.keyCode == 189 && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  391. doNewSend(["6", [28]]);
  392. /*setTimeout(() => {
  393. doNewSend(["6", [25]]);
  394. }, 100);*/
  395. }
  396. if(e.key == BOOST && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  397. slot(boostType);
  398. }
  399. if(e.key == MILL && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  400. slot(millType);
  401. }
  402. if(e.key == SPIKE && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  403. slot(spikeType)
  404. }
  405. if(e.key == TURRET && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  406. doNewSend(["5", [turretType, null]])
  407. }
  408. /* ws sender can be cheaty:
  409. if(e.keyCode == 80 && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  410. eval("doNewSend(["+prompt("Send:")+"])");
  411. }
  412. */
  413. if(e.keyCode == 76 && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  414. let evals = prompt("Console Command: Available Commands: katana(), place(spikeType:millType:boostType:turretType, optionalangle):")
  415. eval(evals);
  416. }
  417. })
  418.  
  419. document.addEventListener('keyup', (e)=>{
  420. if(e.keyCode == 71 && document.activeElement.id.toLowerCase() !== 'chatbox' && document.activeElement.id.toLowerCase() != 'allianceInput' && document.activeElement.id.toLowerCase() != "ach1") {
  421. setTimeout( () => {
  422. doNewSend(["33", [null]]);
  423. boostDir = null;
  424. }, 10);
  425. }
  426. })
  427.  
  428.  
  429. function isElementVisible(e) {
  430. return (e.offsetParent !== null);
  431. }
  432.  
  433.  
  434. function toRad(angle) {
  435. return angle * 0.01745329251;
  436. }
  437.  
  438. function dist(a, b){
  439. return Math.sqrt( Math.pow((b.y-a[2]), 2) + Math.pow((b.x-a[1]), 2) );
  440. }
  441.  
  442.  
  443. document.title = "Utility Mod by i30cps"
  444.  
  445. function update() {
  446. for (let i=0;i<9;i++){
  447. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
  448. primary = i;
  449. }
  450. }
  451.  
  452. for (let i=9;i<16;i++){
  453. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
  454. secondary = i;
  455. }
  456. }
  457.  
  458. for (let i=16;i<19;i++){
  459. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
  460. foodType = i - 16;
  461. }
  462. }
  463.  
  464. for (let i=19;i<22;i++){
  465. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
  466. wallType = i - 16;
  467. }
  468. }
  469.  
  470. for (let i=22;i<26;i++){
  471. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
  472. spikeType = i - 16;
  473. }
  474. }
  475.  
  476. for (let i=26;i<29;i++){
  477. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
  478. millType = i - 16;
  479. }
  480. }
  481.  
  482. for (let i=29;i<31;i++){
  483. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
  484. mineType = i - 16;
  485. }
  486. }
  487.  
  488. for (let i=31;i<33;i++){
  489. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
  490. boostType = i - 16;
  491. }
  492. }
  493.  
  494. for (let i=33;i<39;i++){
  495. if (isElementVisible(document.getElementById("actionBarItem" + i.toString())) && i != 36){
  496. turretType = i - 16;
  497. }
  498. }
  499.  
  500. spawnpadType = 36;
  501. }
  502.  
  503. try {
  504. document.getElementById("moomooio_728x90_home").style.display = "none";
  505. $("moomooio728x90_home").parent().css({display: "none"});
  506. } catch (e) {
  507. console.log("There was an error removing the ads.");
  508. }
  509.  
  510.  
  511. var menuChange = document.createElement("div");
  512. menuChange.className = "menuCard";
  513. menuChange.id = "mainSettings";
  514. menuChange.innerHTML = `
  515. <div id="simpleModal" class="modal">
  516. <div class="modal-content">
  517. <div class="modal-header">
  518. <span class="closeBtn">&times;</span>
  519. <h2 style="font-size: 17px;">Settings</h2>
  520. </div>
  521. <div class="modal-body" style="font-size: 17px;">
  522. <div class="modal-content" style="font-size:14px">
  523. <p>ESC = Open Menu, L = Console Command, F=Trap/BoostPad, V=Spike, Z=WindMill, G=Turret/Teleporter/Blocker</p>
  524. </div>
  525. <div class="flexControl">
  526. <h3 style="font-size: 17px;"> Settings </h3>
  527. <label class="container">Show biomes on the map ?(Snow, Plains, desert)
  528. <input type="checkbox" id="myCheck">
  529. <span class="checkmark"></span>
  530. </label>
  531. <label class="container">AutoChat Animation?
  532. <input type="checkbox" id="myCheck2">
  533. <span class="checkmark"></span>
  534. </label>
  535. <h3 style="font-size: 17px;"> Autochat/Autotribe settings </h3>
  536. <br>AutoChat:<input type="text" value="Enter AutoChat Here" id="ach1" width="100" height="50"/><br>
  537. </div>
  538. </div>
  539. </div>
  540. </div>
  541. `
  542. document.body.appendChild(menuChange)
  543.  
  544.  
  545.  
  546. var styleItem = document.createElement("style");
  547. styleItem.type = "text/css";
  548. styleItem.appendChild(document.createTextNode(`
  549. .keyPressLow {
  550. margin-left: 8px;
  551. font-size: 16px;
  552. margin-right: 8px;
  553. height: 25px;
  554. width: 50px;
  555. background-color: #fcfcfc;
  556. border-radius: 3.5px;
  557. border: none;
  558. text-align: center;
  559. color: #4A4A4A;
  560. border: 0.5px solid #f2f2f2;
  561. }
  562. .menuPrompt {
  563. font-size: 17px;
  564. font-family: 'Hammersmith One';
  565. color: #4A4A4A;
  566. flex: 0.2;
  567. text-align: center;
  568. margin-top: 10px;
  569. display: inline-block;
  570. }
  571.  
  572. .modal {
  573. display: none;
  574. position: fixed;
  575. z-index: 1;
  576. left: 0;
  577. top: 0;
  578. overflow: auto;
  579. height: 100%;
  580. width: 100%;
  581. }
  582.  
  583. .modal-content {
  584. margin: 10% auto;
  585. width: 40%;
  586. box-shadow: 0 5px 8px 0 rgba(0, 0, 0, 0.2), 0 7px 20px 0 rgba(0, 0, 0, 0.17);
  587. font-size: 14px;
  588. line-height: 1.6;
  589. }
  590.  
  591. .modal-header h2,
  592. .modal-footer h3 {
  593. margin: 0;
  594. }
  595.  
  596. .modal-header {
  597. background: #cf2727;
  598. padding: 15px;
  599. color: #fff;
  600. border-top-left-radius: 5px;
  601. border-top-right-radius: 5px;
  602. }
  603.  
  604. .modal-body {
  605. padding: 10px 20px;
  606. background: #fff;
  607. }
  608.  
  609. .modal-footer {
  610. background: #cf2727;
  611. padding: 10px;
  612. color: #fff;
  613. text-align: center;
  614. border-bottom-left-radius: 5px;
  615. border-bottom-right-radius: 5px;
  616. }
  617.  
  618. .closeBtn {
  619. color: #ccc;
  620. float: right;
  621. font-size: 30px;
  622. color: #fff;
  623. }
  624.  
  625. .closeBtn:hover,
  626. .closeBtn:focus {
  627. color: #000;
  628. text-decoration: none;
  629. cursor: pointer;
  630. }
  631.  
  632. /* Customize the label (the container) */
  633. .container {
  634. display: block;
  635. position: relative;
  636. padding-left: 35px;
  637. margin-bottom: 12px;
  638. cursor: pointer;
  639. font-size: 16px;
  640. -webkit-user-select: none;
  641. -moz-user-select: none;
  642. -ms-user-select: none;
  643. user-select: none;
  644. }
  645.  
  646. /* Hide the browser's default checkbox */
  647. .container input {
  648. position: absolute;
  649. opacity: 0;
  650. cursor: pointer;
  651. height: 0;
  652. width: 0;
  653. }
  654.  
  655. /* Create a custom checkbox */
  656. .checkmark {
  657. position: absolute;
  658. top: 0;
  659. left: 0;
  660. height: 25px;
  661. width: 25px;
  662. background-color: #eee;
  663. }
  664.  
  665. /* On mouse-over, add a grey background color */
  666. .container:hover input ~ .checkmark {
  667. background-color: #ccc;
  668. }
  669.  
  670. /* When the checkbox is checked, add a red background */
  671. .container input:checked ~ .checkmark {
  672. background-color: #cf2727;
  673. }
  674.  
  675. /* Create the checkmark/indicator (hidden when not checked) */
  676. .checkmark:after {
  677. content: "";
  678. position: absolute;
  679. display: none;
  680. }
  681.  
  682. /* Show the checkmark when checked */
  683. .container input:checked ~ .checkmark:after {
  684. display: block;
  685. }
  686.  
  687. /* Style the checkmark/indicator */
  688. .container .checkmark:after {
  689. left: 9px;
  690. top: 5px;
  691. width: 5px;
  692. height: 10px;
  693. border: solid white;
  694. border-width: 0 3px 3px 0;
  695. -webkit-transform: rotate(45deg);
  696. -ms-transform: rotate(45deg);
  697. transform: rotate(45deg);
  698. }
  699.  
  700. `))
  701. document.head.appendChild(styleItem);
  702.  
  703.  
  704. $("#adCard").css({display: "none"});
  705.  
  706.  
  707. document.addEventListener('keydown', function(e) {
  708. if (e.keyCode == 27){
  709. if (modal.style.display = "none") {
  710. modal.style.display = "block";
  711. } else {
  712. modal.style.display = "none";
  713. }
  714. }
  715. })
  716.  
  717. // Get modal element
  718. var modal = document.getElementById("simpleModal");
  719. // Get close button
  720. var closeBtn = document.getElementsByClassName('closeBtn')[0];
  721.  
  722. // Events
  723. closeBtn.addEventListener('click', closeModal);
  724. window.addEventListener('click', outsideClick);
  725.  
  726. // Close
  727. function closeModal() {
  728. modal.style.display = 'none';
  729. }
  730.  
  731. // Close If Outside Click
  732. function outsideClick(e) {
  733. if (e.target == modal) {
  734. modal.style.display = 'none';
  735. }
  736. }
  737.  
  738. var checkbox = document.querySelector("#myCheck")
  739.  
  740. checkbox.addEventListener('change', function() {
  741. if (this.checked) {
  742. $("#mapDisplay").css({background: `url('https://i.imgur.com/fgFsQJp.png')`});
  743. console.log('checked')
  744. } else {
  745. $("#mapDisplay").css({background: `rgba(0, 0, 0, 0.25)`})
  746. console.log('unchecked')
  747. }
  748. })
  749. var checkbox2 = document.querySelector("#myCheck2")
  750.  
  751. checkbox2.addEventListener('change', function() {
  752. if (this.checked) {
  753. animateyorn = true;
  754. } else {
  755. animateyorn = false;
  756. }
  757. })
  758. /*var checkbox3 = document.querySelector("#myCheck3")
  759.  
  760. checkbox3.addEventListener('change', function() {
  761. if (this.checked) {
  762. instaCHAT = true;
  763. } else {
  764. instaCHAT = false;
  765. }
  766. })*/
  767.  
  768. document.addEventListener('keyup', (e)=>{
  769. if(e.keyCode == 71 && document.activeElement.id.toLowerCase() !== 'chatbox') {
  770. setTimeout( () => {
  771. doNewSend(["33", [null]]);
  772. boostDir = null;
  773. }, 10);
  774. }
  775. })
  776.  
  777.  
  778. function isElementVisible(e) {
  779. return (e.offsetParent !== null);
  780. }
  781.  
  782.  
  783. function toRad(angle) {
  784. return angle * 0.01745329251;
  785. }
  786.  
  787. function dist(a, b){
  788. return Math.sqrt( Math.pow((b.y-a[2]), 2) + Math.pow((b.x-a[1]), 2) );
  789. }
  790.  
  791.  
  792. function animate(space, animateyn) {
  793. let result = '';
  794. if (space) {
  795. result = document.getElementById("ach1").value;
  796. } else {
  797. result = "i30cps"
  798. }
  799. if (animateyn) {
  800. let place = Math.floor(Math.random()*result.length);
  801. result = result.substring(0, place) + "_" + result.substring(place+1, result.length);
  802. }
  803. return result;
  804. }
  805. var lel = false;
  806. function nothig() {
  807. var lel = false;
  808. console.log("fOlS");
  809. }
  810.  
  811. unsafeWindow.admob = {
  812. requestInterstitialAd: ()=>{},
  813. showInterstitialAd: ()=>{}
  814. }
  815. function ichat(space, chance) {
  816. var ach1 = document.getElementById("ach2").value;
  817. let result = '';
  818. let characters;
  819. if(space) {
  820. characters = ach1;
  821. }
  822. if(space) {
  823. characters = characters.padStart((30 - characters.length) / 2 + characters.length)
  824. characters = characters.padEnd(30);
  825. }
  826. let count = 0;
  827. for (let i = 0; i < characters.length; i++ ) {
  828. if(Math.floor(Math.random() * chance) == 0 && characters.charAt(i) != "-" && count < 0 && characters.charAt(i) != " ") {
  829. result += "";
  830. count++
  831. } else {
  832. result += characters.charAt(i);
  833. }
  834. }
  835. return result;
  836. }
  837.  
  838.  
  839.  
  840.  
  841. // CPS VIEWER BY CyRuler#3691
  842.  
  843.  
  844.  
  845.  
  846.  
  847. var cps = 0;
  848. var iCliked = 1;
  849. $("#gameCanvas").mousedown(function(e){
  850. if(e.which == 1 && iCliked == 1)
  851. {
  852. cps = (cps + 1)
  853. setTimeout( () => {
  854. cps = (cps - 1)
  855. }, 950);
  856. }
  857. });
  858. $("#gameCanvas").mousedown(function(e){
  859. if(e.which == 3 && iCliked == 1)
  860. {
  861. cps = (cps + 1)
  862. setTimeout( () => {
  863. cps = (cps - 1)
  864. }, 950);
  865. }
  866. });
  867. document.addEventListener("mousedown", buttonPress, false);
  868. function buttonPress(e) {
  869. if(e.button==1 && iCliked == 1)
  870. {
  871. cps = (cps + 1)
  872. setTimeout( () => {
  873. cps = (cps - 1)
  874. }, 950);
  875. }
  876. }
  877.  
  878. document.addEventListener('keydown', function (e) {
  879. if(e.keyCode == 16){
  880. SendKeys.Send("{F3}");
  881. }
  882. });
  883. var CpsMenu = document.createElement("div");
  884. CpsMenu.style.padding = "5px";
  885. CpsMenu.id = "CpsDiv";
  886. CpsMenu.style.font = "30px Arial";
  887. CpsMenu.style.display = "block";
  888. CpsMenu.style.position = "fixed";
  889. CpsMenu.style.top = "3%";
  890. CpsMenu.style.left = "0%";
  891. CpsMenu.textContent = "Loading";
  892. document.body.appendChild(CpsMenu);
  893. setInterval(()=>{
  894. CpsMenu.textContent = "Cps:"+cps;
  895. }, 0);

QingJ © 2025

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