// ==UserScript== // @name Effortless - Moomoo.io Legit Macros & Interactive Menu // @author Seryo // @description Press L to toggle macros: (Spike, Trap, Mill, Turret/Teleport, Heal). Use the "Esc" key to toggle the menu. // @version 0.2 // @match *://*.moomoo.io/* // @namespace https://greasyfork.org/users/1190411 // @icon https://cdn.glitch.com/82ae8945-dcc6-4276-98a9-665381b4cd2b/cursor12.png // @license MIT // @grant none // @require https://cdn.jsdelivr.net/npm/msgpack-lite@0.1.26/dist/msgpack.min.js // @require http://code.jquery.com/jquery-3.3.1.min.js // @require https://code.jquery.com/ui/1.12.0/jquery-ui.min.js // ==/UserScript== var pi = Math.PI, date = new Date(), old = Date.now(), cos = Math.cos, sin = Math.sin, abs = Math.abs, pow = Math.pow, min = Math.min, max = Math.max, atan2 = Math.atan2, sqrt = Math.sqrt, random = Math.random, floor = Math.floor; function rdm(a,b) { return Math.floor(Math.random() *(b - a + 1)) + a; } function isChatOpen() { return document.activeElement.id.toLowerCase() === 'chatbox'; } function isAllianceInputActive() { return document.activeElement.id.toLowerCase() === 'allianceinput'; } function shhk() { return !isChatOpen() && !isAllianceInputActive(); } $("body").after(` `); $("body").after(`
LeftAndRightClick: On
Macros: On
AutoSpawn: On
Left-Click
Right-Click
`); $(document).on('keydown', function(e) { if (e.keyCode === 76 && shhk()) { var macrosCheckbox = document.getElementById("AHK"); macrosCheckbox.click(); } }); $(document).keydown(function(event) { if ( event.keyCode === 27 && shhk() && storeMenu.style.display !== 'block') { $("#infomenu").toggle(); } }); document.querySelector("#MakeClan").oninput = function(){ if (this.value.length === 0) { $(".Input_Text_style").css("border","2px solid red"); } else { $(".Input_Text_style").css("border","2px solid #fff"); } } let mouseX, mouseY, width,height; let url = new URL(window.location.href); window.sessionStorage.force = url.searchParams.get("fc"); var pr,sec,st,bt,ft,mt,tr; var AHK = false; var autospawn = false; let myPlayer = { id: null, x: null, y: null, dir: null, object: null, weapon: null, clan: null, isLeader: null, isSkull: null }; var websocket; var MsgPack = msgpack; document.msgpack = msgpack; WebSocket.prototype.OldSend = WebSocket.prototype.send; WebSocket.prototype.send = function(e) { if(!websocket){ Greasy(this); websocket = this; document.websocket = this; } this.OldSend(e); } function Greasy(msg){ msg.addEventListener('message', function(cd){ Handler(cd); }); } function Handler(e) { let tmp = MsgPack.decode(new Uint8Array(e.data)); let data; if(tmp.length >= 1) { data = [tmp[0], ...tmp[1]]; if (data[1] instanceof Array){ data = data; } } else { data = tmp; } let item = data[0]; if(!data) { return; } if (item == "33") { for(let e = 0; e < data[1].length / 13; e++) { let Arr = data[1].slice(13*e, 13*e+13); if(Arr[0] == myPlayer.id) { myPlayer.x = Arr[1]; myPlayer.y = Arr[2]; myPlayer.dir = Arr[3]; myPlayer.object = Arr[4]; myPlayer.weapon = Arr[5]; myPlayer.clan = Arr[7]; myPlayer.isLeader = Arr[8]; myPlayer.isSkull = Arr[11]; } } } if (item == "1" && myPlayer.id == null){ myPlayer.id = data[1]; } if (item == "io-init") { let cvs = document.getElementById("gameCanvas"); width = cvs.clientWidth; height = cvs.clientHeight; $(window).resize(function() { width = cvs.clientWidth; height = cvs.clientHeight; }); cvs.addEventListener("mousemove", (e) => { mouseX = e.clientX; mouseY = e.clientY; }); } UpdateItems(); if(autospawn == true){ item == "11" && setTimeout(() => { emit('sp', {name:localStorage.getItem("moo_name"), moofoll: "1", skin: rdm(8,1)}); },3000); } } function acc(id) { emit("13c", 1,id, 1); emit("13c", 0,id, 1); } function hat(id) { emit("13c", 1,id, 0); emit("13c", 0,id, 0); } function Sender(e) { websocket.send(new Uint8Array(Array.from(MsgPack.encode(e)))); } function emit(e,a,b,c,m,r) { Sender([e, [a,b,c,m,r]]); } function use(e, a = atan2(mouseY - height / 2, mouseX - width / 2)) { emit("5", e, null); emit("c", 1, a); emit("c", 0, a); emit("5", myPlayer.weapon, true); } function useQ(e, a = atan2(mouseY - height / 2, mouseX - width / 2)) { emit("5", e, null); emit("c", 1, null); emit("c", 0, null); emit("5", myPlayer.weapon, true); } var rptr = function(key, action, interval) { let _isKeyDown = false; let _intervalId = undefined; return { start(keycode) { if(keycode == key && shhk()) { _isKeyDown = true; if(_intervalId === undefined) { _intervalId = setInterval(() => { action(); if(!_isKeyDown){ clearInterval(_intervalId); _intervalId = undefined; } }, interval); } } }, stop(keycode) { if(keycode == key && shhk()) { _isKeyDown = false; } } };} const KeyHeal_3 = rptr(51, () => { useQ(ft, null) },100); const KeyHeal_Q = rptr(81, () => { useQ(ft, null) },100); const Put_Boost = rptr(70, () => { for(let i=0;i<1;i++)use(bt) },100); const Put_Spike = rptr(86, () => { for(let i=0;i<1;i++)use(st) },100); const Put_Mills = rptr(78, () => { for(let i=0;i<1;i++)use(mt) },100); const Put_Turret = rptr(72, () => { for(let i=0;i<1;i++)use(tr); },100); document.addEventListener('keydown', (e)=>{ if(AHK == true){ KeyHeal_3.start(e.keyCode); KeyHeal_Q.start(e.keyCode); Put_Boost.start(e.keyCode); Put_Spike.start(e.keyCode); Put_Mills.start(e.keyCode); Put_Turret.start(e.keyCode); } }); document.addEventListener('keyup', (e)=>{ if(AHK == true){ KeyHeal_3.stop(e.keyCode); KeyHeal_Q.stop(e.keyCode); Put_Boost.stop(e.keyCode); Put_Spike.stop(e.keyCode); Put_Mills.stop(e.keyCode); Put_Turret.stop(e.keyCode); } }); function Element_Visible(e) { return e.offsetParent !== null; } function UpdateItems() { for (let i=0;i<9;i++){ if (Element_Visible(document.getElementById("actionBarItem" + i.toString()))){ pr = i; } } for (let i=9;i<16;i++){ if (Element_Visible(document.getElementById("actionBarItem" + i.toString()))){ sec = i; } } for (let i=16;i<19;i++){ if (Element_Visible(document.getElementById("actionBarItem" + i.toString()))){ ft = i - 16; } } for (let i=22;i<26;i++){ if (Element_Visible(document.getElementById("actionBarItem" + i.toString()))){ st = i - 16; } } for (let i=26;i<29;i++){ if (Element_Visible(document.getElementById("actionBarItem" + i.toString()))){ mt = i - 16; } } for (let i=31;i<33;i++){ if (Element_Visible(document.getElementById("actionBarItem" + i.toString()))){ bt = i - 16; } } for (let i=33;i<39;i++){ if (Element_Visible(document.getElementById("actionBarItem" + i.toString()))){ tr = i - 16; } } } var Soldier_Q = false; var Clicks = false; const cvs = document.getElementById("gameCanvas"); cvs.addEventListener("mousedown", clicks, false); function clicks(e) { if (e.button == 0) { if (Clicks == true) { document.getElementById('addtext1').style .display = "block"; } } if (e.button == 2) { if (Clicks == true) { document.getElementById('addtext2').style .display = "block"; } } } var bigMap = false; var leaderBlock = document.getElementById("leaderboard"); var scoreDisplay = document.getElementById("scoreDisplay"); var mapDisplay = document.getElementById("mapDisplay"); var chatBox = document.getElementById("chatbox"); var allianceInput = document.getElementById("allianceInput"); document.addEventListener('keydown', (e) => { if (e.keyCode === 36 && shhk()) { switch (e.keyCode) { case 36: if (bigMap == false) { bigMap = true; $("#mapDisplay").css({ "background-size": "425px", "position": "absolute", "margin-top": "150px", "right": "20px", "background-color": "rgba(0, 0, 0, 0.25)", "height": "425px", "width": "425px", "border-radius": "5px", }); if (scoreDisplay) { scoreDisplay.style.display = "none"; } } else { bigMap = false; $("#mapDisplay").css({ "background-size": "130px", "position": "absolute", "bottom": "20px", "left": "20px", "margin-top": "638px", "background-color": "rgba(0, 0, 0, 0.1)", "height": "130px", "width": "130px", "box-shadow": "none", "border": "none" }); if (scoreDisplay) { scoreDisplay.style.display = "block"; } } break; } } }); var AutoSpawn = document.querySelector("#autospawn") AutoSpawn.addEventListener('change', function() { if (this.checked) { document.getElementById('addtext4').style.display = "block"; autospawn = true; } else { document.getElementById('addtext4').style.display = "none"; autospawn = false; } }) var cpsss = document.querySelector("#CPSTOGGLER") cpsss.addEventListener('change', function() { if (this.checked) { $("#cpss").css("display", "block"); } else { $("#cpss").css("display", "none"); } }); var AHKK = document.querySelector("#AHK") AHKK.addEventListener('change', function() { if (this.checked) { document.getElementById('addtext3').style.display = "block"; AHK = true; } else { document.getElementById('addtext3').style.display = "none"; AHK = false; } }); var cl = document.querySelector("#Clicks") cl.addEventListener('change', function() { if (this.checked) { document.getElementById('addtext').style.display = "block"; Clicks = true; } else { document.getElementById('addtext').style.display = "none"; Clicks = false; } }); var NewMapp = document.querySelector("#NewMap") NewMapp.addEventListener('change', function() { if (this.checked) { $("#mapDisplay").css("background", "url('https://wormax.org/chrome3kafa/moomooio-background.png')"); } else { $("#mapDisplay").css("background", "rgba(0, 0, 0, 0.25)"); } }) $("killCounter").css({"top": "230px"}); var cps = 0; var click = 1; $("#gameCanvas").mousedown(function(e){ if(e.which == 1 && click == 1){ cps = (cps + 1) setTimeout( () => { cps = (cps - 1) }, 950); } }); $("#gameCanvas").mousedown(function(e){ if(e.which == 3 && click == 1){ cps = (cps + 1) setTimeout( () => { cps = (cps - 1) }, 950); } }); document.addEventListener("mousedown", buttonPress, false); function buttonPress(e) { if(e.button == 1 && click == 1){ cps = (cps + 1) setTimeout( () => { cps = (cps - 1) }, 950); } } var cpsM = document.createElement("div"); cpsM.style.padding = "5px"; cpsM.id = "cpss"; cpsM.style.font = "30px Arial"; cpsM.style.display = "none"; cpsM.style.position = "fixed"; cpsM.style.top = "40%"; cpsM.style.left = "0%"; cpsM.style.color = "#fff"; document.body.appendChild(cpsM); function updateCPS() { cpsM.textContent = "Cps: " + cps; requestAnimationFrame(updateCPS); } updateCPS();