您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A mod suitable for professionals only, not automatic, only automatic healing.
// ==UserScript== // @name EZ HACK MOD by EZ HACK v 1.5 Beta // @namespace no // @license MIT // @version 1.5 // @author EZ HACK // @description A mod suitable for professionals only, not automatic, only automatic healing. // @match *://*.moomoo.io/* // @match *://dev.moomoo.io/* // @match *://sandbox.moomoo.io/* // @require https://greasyfork.org/scripts/478839-moomoo-io-packet-code/code/MooMooio%20Packet%20Code.js // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/msgpack.min.js // @require https://greasyfork.org/scripts/423602-msgpack/code/msgpack.js // @grant none // @icon https://i.imgur.com/Q7vI76D.png // @downloadURL // ==/UserScript== /* Key code : R__insta kill T__revers insta F__trap V__spieks O__4 spieaks C__no hat N__auto 3 mill G__ boster hat / wanter cap / Fish hat H__ 2 turret E__tank gear / solder helmet If you have a problem with the E button, press the number zero 0-zero__tank gear / solder helmet Q __speed auto heal U__store Menu Y__alliance Menu L__on / off funy CLICK FORWARD__ tank gear / solder helmet Right click__ nice DMG Space__1 spieks + DMG Shift__solder helmet Click scroll wheel__ 4 trap INSERT__Hide accessories B__chat(turret pls) M__chat(fuck Israel) */ (function() { "use strict" const adSelectors = [ "#adCard", "#adBlock", "#promoImgHolder", "#pre-content-container" ] const meaninglessSelectors = [ "#joinPartyButton", "#partyButton", "#settingsButton", `script[src="./libs/howler.core.min.js"]`, "#errorNotification", "#youtubeFollow", "#linksContainer2", "#twitterFollow", "#followText", "#youtuberOf", "#mobileInstructions", "#downloadButtonContainer", "#mobileDownloadButtonContainer", ".downloadBadge", "#altServer" ] const stateColors = { enabled: "#7ee559", disabled: "#e55959" } function removeElement(selector) { const elements = [ ...document.querySelectorAll(selector) ] for (const element of elements) { if (!element) continue if (!(element.remove instanceof Function)) { element.style.display = "none !important" element.style.visiblity = "hidden !important" continue } element.remove() } } function removeElements(selectors) { for (const selector of selectors) { if (!selector) continue removeElement(selector) } } function getCustomId(id) { id = id.toLowerCase().replace(/(\-|\s)/g, "_") return `beta_adapter_${id}` } function getGameDefaultButton(id) { const button = document.createElement("div") button.classList.add("menuButton") button.id = id return button } function addButtonToSetupCard(name, state, listener) { const setupCard = document.getElementById("setupCard") const id = getCustomId(name) const button = getGameDefaultButton(id) button.innerHTML = `<span>${name}</span>` button.style.marginTop = "16px" setupCard.appendChild(button) button.setState = function(_state) { const stateColor = stateColors[_state ? "enabled" : "disabled"] button.style.backgroundColor = stateColor } button.setState(state) if (!(listener instanceof Function)) return button.addEventListener("click", listener.bind(null, button)) } function getRemoveStoreHatsState() { return JSON.parse(localStorage.getItem("remove_store_hats")) } function setRemoveStoreHatsState(_state) { localStorage.setItem("remove_store_hats", JSON.stringify(_state)) } function onDOMLoaded() { removeElements(adSelectors) removeElements(meaninglessSelectors) addButtonToSetupCard("Remove store hats", getRemoveStoreHatsState(), (button) => { const state = !getRemoveStoreHatsState() button.setState(state) setRemoveStoreHatsState(state) }) const storeButton = document.getElementById("storeButton") const storeTabs = document.querySelectorAll(".storeTab") const removeHatsButtons = [ storeButton, ...storeTabs ] removeHatsButtons.forEach((button) => { button.addEventListener("click", () => { if (!getRemoveStoreHatsState()) return const interval = setInterval(() => { const mainMenu = document.getElementById("mainMenu") const hatPreview = document.querySelector(".hatPreview") if (mainMenu) return clearInterval(interval) if (!hatPreview) return removeElement(".hatPreview") clearInterval(interval) }) }) }) } window.location.native_resolution = true const oldReqAnimFrame = window.requestAnimationFrame window.requestAnimationFrame = function(callback) { if (callback.toString().length === 69) { return window.setTimeout(callback, 1e3 / 111) } return oldReqAnimFrame(callback) } Object.defineProperty(HTMLImageElement.prototype, "src", { get() { return this[Symbol("src")] }, set(value) { if (this.classList.contains("hatPreview")) { if (getRemoveStoreHatsState() && (/\/hats\/hat\_/.test(value) || /\/accessories\/access\_/.test(value))) { return this.remove() } } this.setAttribute("src", value) this[Symbol("src")] = value }, configurable: true }) Object.defineProperty(Object.prototype, "turnSpeed", { get() { return 0 }, set(value) { this[Symbol("turnSpeed")] = 0 }, configurable: true }) const maxScreenWidth = 1920 const maxScreenHeight = 1080 const { lineTo, moveTo } = CanvasRenderingContext2D.prototype const gridAlpha = 0.06 CanvasRenderingContext2D.prototype.moveTo = function(x, y) { if (this.globalAlpha === gridAlpha) return return moveTo.apply(this, arguments) } CanvasRenderingContext2D.prototype.lineTo = function(x, y) { if (this.globalAlpha === gridAlpha && (y === maxScreenHeight || x === maxScreenWidth)) return return lineTo.apply(this, arguments) } window.addEventListener("DOMContentLoaded", onDOMLoaded) })() const PASSWORD = "EZ HACK MOD"; let password = prompt("Enter Your Password!"); while (password !== PASSWORD) { alert("LOL"); password = prompt("Enter Password"); } document.getElementById('enterGame').innerText = "⇏ Enter_game. ⇍"; document.getElementById("enterGame").addEventListener("mouseenter", function() { document.getElementById('enterGame').innerText = "⇏ Enter_game. ⇍"; }); document.getElementById("enterGame").addEventListener("mouseleave", function() { document.getElementById('enterGame').innerText = "⇏ Enter_game. ⇍"; }); $('#itemInfoHolder').css({ 'text-align': 'center', 'top': '25px', 'left': '440px', 'right': '350px', 'max-width': '350px' }); document.getElementById('chatBox').innerHTML = 'Hi LOL-_-'; document.getElementById('gameName').innerHTML = ''; setTimeout(() => { document.getElementById('gameName').innerHTML = 'Loading..'; setTimeout(() => { document.getElementById('gameName').innerHTML = 'E'; setTimeout(() => { document.getElementById('gameName').innerHTML = 'EZ'; setTimeout(() => { document.getElementById('gameName').innerHTML = 'EZ '; setTimeout(() => { document.getElementById('gameName').innerHTML = 'EZ H'; setTimeout(() => { document.getElementById('gameName').innerHTML = 'EZ HA'; setTimeout(() => { document.getElementById('gameName').innerHTML = 'EZ HAC'; setTimeout(() => { document.getElementById('gameName').innerHTML = 'EZ HACK'; setTimeout(() => { document.getElementById('gameName').innerHTML = 'EZ HACK '; setTimeout(() => { document.getElementById('gameName').innerHTML = 'EZ HACK MOD v1.5 Beta'; }, 120); }, 120); }, 120); }, 120); }, 120); }, 120); }, 120); }, 120); }, 120); }, 120); document.getElementById('loadingText').innerHTML = 'Loading...'; setTimeout(() => { document.getElementById('loadingText').innerHTML = 'loading_Game'; }, 710); (function () { 'use strict'; let allianceMenu = document.getElementById('allianceMenu'); let storeMenu = document.getElementById('storeMenu'); document.addEventListener('keydown', function (event) { if (shouldHandleMenus(event)) { if (event.key === 'y') { toggleMenu(allianceMenu, storeMenu); } else if (event.key === 'u') { toggleMenu(storeMenu, allianceMenu); } if (event.key === 'Y') { toggleMenu(allianceMenu, storeMenu); } else if (event.key === 'U') { toggleMenu(storeMenu, allianceMenu); } } }); function shouldHandleMenus(event) { const chatboxActive = document.activeElement.id.toLowerCase() === 'chatbox'; const allianceInputActive = document.activeElement.id.toLowerCase() === 'allianceinput'; return !chatboxActive && !allianceInputActive; } function toggleMenu(menu, otherMenu) { if (menu.style.display === 'none' || menu.style.display === '') { menu.style.display = 'block'; if (otherMenu.style.display !== 'none') { otherMenu.style.display = 'none'; } } else { menu.style.display = 'none'; } } })(); document.getElementById('loadingText').innerHTML = '....LOL HACK -_-....' document.getElementById('gameName').style.textShadow = 'none'; document.getElementById('gameName').style.fontSize = "155px"; document.getElementById('linksContainer2').style.background = "black"; document.getElementById('mapDisplay').height = '450'; document.getElementById('mapDisplay').width = '450'; document.getElementById('diedText').innerHTML = "its..ok"; document.getElementById('diedText').style.color = "black"; $("#moomooio_728x90_home").parent().css({display: "none"}); document.getElementById('linksContainer2').innerHTML = 'EZ HACK MOD' ; document.querySelector("#gameName").innerHTML = "EZ HACK"; document.getElementById("storeHolder").style = "height: 345px; width: 410px;"; document.getElementById('enterGame').innerText = "EZ HACK MOD"; document.getElementById("enterGame").style.color = "#000000"; document.getElementById("enterGame").style.backgroundColor = "black"; document.title = ' EZ HACK MOD'; $("#mapDisplay").css({background: `url('https://i.imgur.com/aGpK7hj.png')`}); $("#wideAdCard").remove(); $("#storeDisplay1").remove(); $("#adCard").remove(); $("#promoImgHolder").remove(); let style = document.createElement('style') style.appendChild(document.createTextNode(` `)) document.head.appendChild(style) let replaceInterval = setInterval(() => { if (CanvasRenderingContext2D.prototype.roundRect) { CanvasRenderingContext2D.prototype.roundRect = ((oldFunc) => function() { if (this.fillStyle == "#8ecc51") this.fillStyle = `hsl(180, 100%, 50%)`; return oldFunc.call(this, ...arguments); })(CanvasRenderingContext2D.prototype.roundRect); clearInterval(replaceInterval); }}, 10); setInterval(() => { if (autoaim == true) { doNewSend(["D", [nearestEnemyAngle]]); } }, 10); var spikeType; var isEnemyNear; var nearestEnemyAngle; var autoaim = false; var primary; var secondary; var foodType; let hitBack = false; let stackInsta = false; let anti = true; let hitTToggle = 1; let hitToggle = 0; let hatToggle = 1; let ais = []; let ws; let x = 0; let y = 0; let msgpack5 = window.msgpack; let scale = 45; let placeOffset = 5; let crashing; let cmds = { autoheal: false, automill: false } let inv = { primary: null, secondary: null, food: null, wall: null, spike: null, trap: null, mill: null, mine: null, boostPad: null, spikeType: null, turret: null, spawnpad: null }; let myPlayer = { sid: null, hp: null, x: null, y: null, dir: null, buildIndex: null, weaponIndex: null, weaponVariant: null, team: null, isLeader: null, skinIndex: null, tailIndex: null, iconIndex: null }; let enemy; let nearestEnemy; let enemyInf = { hat: null, x: null, y: null, weaponIndex: null} document.msgpack = window.msgpack; WebSocket.prototype.oldSend = WebSocket.prototype.send; WebSocket.prototype.send = function (e) { ws || (document.ws = this, ws = this, document.ws.addEventListener("message", hookWS)); this.oldSend(e); }; function dist(a, b){ return Math.sqrt( Math.pow((b.y-a[2]), 2) + Math.pow((b.x-a[1]), 2) ); } function handleMessage(m){ let temp = msgpack5.decode(new Uint8Array(m.data)); let data; if(temp.length > 1) { data = [temp[0], ...temp[1]]; if (data[1] instanceof Array){ data = data; } } else { data = temp; } let item = data[0]; if(!data) {return}; } let join = message => Array.isArray(message) ? [...message] : [...message]; let hookWS = ms => { let tmpData = msgpack5.decode(new Uint8Array(ms.data)); let data; if(tmpData.length > 1) { data = [tmpData[0], ...tmpData[1]]; if (data[1] instanceof Array){ data = data } } else { data = tmpData } let item = data[0]; if(!data) {return}; if (item == "C" && myPlayer.sid == null){ myPlayer.sid = data[1]; } if (item == "O" && data[1] == myPlayer.sid) { let hp = data[2] if (hp < 91) { let c; if (hp < 100) c = 2; for (let i=0;i<c;i++) setTimeout(() => { place(foodType); }, i * 0.2); for (let i=0;i<2;i++) setTimeout(() => { place(foodType); }, i * 0); } } /*if (data[2] < 62 && data[2] > 41 && anti == true && (nearestEnemy[5] == 5 || nearestEnemy[5] == 3)) { //console.log("anti insta - polearm"); doNewSend(["c", [0, 22, 0]]); place(inv.food); for (let i=0;i<2;i++) { place(inv.food); } setTimeout(() => { place(inv.food); doNewSend(["c", [0, 6, 0]]); }, 240); }*/ if (item == "a") { enemy = []; for(let i = 0; i < data[1].length / 13; i++) { let inf = data[1].slice(13*i, 13*i+13); if(inf[0] == myPlayer.sid) { myPlayer.x = inf[1]; myPlayer.y = inf[2]; myPlayer.dir = inf[3]; myPlayer.buildIndex = inf[4]; myPlayer.weaponIndex = inf[5]; myPlayer.weaponVariant = inf[6]; myPlayer.team = inf[7]; myPlayer.isLeader = inf[8]; myPlayer.skinIndex = inf[9]; myPlayer.tailIndex = inf[10]; myPlayer.iconIndex = inf[11]; } else if(inf[7] != myPlayer.team || inf[7] === null) { enemy.push(inf); } } } isEnemyNear = false; if (enemy) { nearestEnemy = enemy.sort((a, b) => dist(a, myPlayer) - dist(b, myPlayer))[0]; } isEnemyNear = false; if (enemy) { nearestEnemy = enemy.sort((a, b) => dist(a, myPlayer) - dist(b, myPlayer))[0]; } if (nearestEnemy) { nearestEnemyAngle = Math.atan2(nearestEnemy[2] - myPlayer.y, nearestEnemy[1] - myPlayer.x); } if (nearestEnemy) { enemyInf.weaponIndex = nearestEnemy[5] enemyInf.hat = nearestEnemy[9] enemyInf.x = nearestEnemy[1] enemyInf.y = nearestEnemy[2] } if (y !== myPlayer.y || x !== myPlayer.x) { if (cmds.automill) { let angle = Math.atan2(y - myPlayer.y, x - myPlayer.x); place(inv.mill, angle + Math.PI / 2.2); place(inv.mill, angle); place(inv.mill, angle - Math.PI / 2.2); } x = myPlayer.x; y = myPlayer.y; } refresh(); } var turretType; var repeater = function(key, action, interval) { let _isKeyDown = false; let _intervalId = undefined; return { start(keycode) { if(keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') { _isKeyDown = true; if(_intervalId === undefined) { _intervalId = setInterval(() => { action(); if(!_isKeyDown){ clearInterval(_intervalId); _intervalId = undefined; } }, interval) } } }, stop(keycode) { if(keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') { _isKeyDown = false; } } } } function noAcc() { setTimeout(() => { doNewSend(["c", [0, 0, 1]])}, 10) setTimeout(() => { doNewSend(["c", [0, 0, 1]])}, 20) setTimeout(() => { doNewSend(["c", [0, 0, 1]])}, 60) setTimeout(() => { doNewSend(["c", [0, 0, 1]])}, 70) setTimeout(() => { doNewSend(["c", [0, 0, 1]])}, 90) } function biomeHat() { if (myPlayer.y < 2400) { storeEquip(15); doNewSend(["c", [0, 11, 1]]); doNewSend(["c", [0, 15, 0]]); hat(15) } else { if (myPlayer.y > 6850 && myPlayer.y < 7550) { storeEquip(31); doNewSend(["c", [0, 31, 0]]); hat(31); doNewSend(["c", [0, 11, 1]]); } else { storeEquip(12); doNewSend(["c", [0, 12, 0]]); hat(12); doNewSend(["c", [0, 11, 1]]); } } } if (!nearestEnemy) { nearestEnemyAngle = myPlayer.dir; } function isElementVisible(e) { return (e.offsetParent !== null); } if (crashing && !closed) { for (let e = 0; e < 1000; e++) { let result = new Uint8Array(Math.round(Math.random() * 18));for (let i = 0; i < result.length; i++) {if (i == 0) {result[i] = Math.round(Math.random() * 256);} else {if (i == 1) {result[i] = Math.round(Math.random() * 256);} else {if (i == 2) {result[i] = Math.round(Math.random() * 128);} else {if (i == 3) {result[i] = Math.round(Math.random() * 85);} else {if (i == 4) {result[i] = Math.round(Math.random() * 64);} else {if (i == 5) {result[i] = Math.round(Math.random() * 51);} else {if (i == 6) {result[i] = Math.round(Math.random() * 42);} else {if (i == 7) {result[i] = Math.round(Math.random() * 36);} else {if (i == 8) {result[i] = Math.round(Math.random() * 32);} else {if (i == 9) {result[i] = Math.round(Math.random() * 28);} else {if (i == 10) {result[i] = Math.round(Math.random() * 25);} else {if (i == 11) {result[i] = Math.round(Math.random() * 23);} else {if (i == 12) {result[i] = Math.round(Math.random() * 21);} else {if (i == 13) {result[i] = Math.round(Math.random() * 19);} else {if (i == 14) {result[i] = Math.round(Math.random() * 18);} else {if (i == 15) {result[i] = Math.round(Math.random() * 17);} else {if (i == 16) {result[i] = Math.round(Math.random() * 16);} else {if (i == 17) {result[i] = Math.round(Math.random() * 15);}}}}}}}}}}}}}}}}}}}ws.oldSend(result); } } function doNewSend(sender){ ws.send(new Uint8Array(Array.from(msgpack5.encode(sender)))); } const emit = (e, a, b, c, m, r) => ws.send(Uint8Array.from([...msgpack5.encode([e, [a, b, c, m, r]])])); const place = (e, l) => { emit("G", e, false); emit("d", 1, l); emit("d", 0, l); emit("G", myPlayer.weaponIndex, true); }; function chat(msg) { emit("6", msg); } function acc(id) { doNewSend(["c", [0, 0, 1]]); doNewSend(["c", [0, id, 1]]); } function hat(id) { emit("c", myPlayer.skinIndex, id, 0); doNewSend(["c", [0, id, 0]]); } function weapon(e) { if (e === 'primary') { emit("G", inv.primary, true); } if (e === 'secondary') { emit("G", inv.secondary, true) } } function toRad(angle) { return angle * 0.01745329251; } function hit(e) { if (e == true || e == false) emit("K", true) } const refresh = () => { for (let c = 0; c < 9; c++) { var _document$getElementB; if (((_document$getElementB = document.getElementById(`actionBarItem${c}`)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.offsetParent) !== null) { inv.primary = c; } } for (let s = 9; s < 16; s++) { var _document$getElementB2; if (((_document$getElementB2 = document.getElementById(`actionBarItem${s}`)) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.offsetParent) !== null) { inv.secondary = s; } } for (let P = 16; P < 19; P++) { var _document$getElementB3; if (((_document$getElementB3 = document.getElementById(`actionBarItem${P}`)) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.offsetParent) !== null) { inv.food = P - 16; } } for (let f = 19; f < 22; f++) { var _document$getElementB4; if (((_document$getElementB4 = document.getElementById(`actionBarItem${f}`)) === null || _document$getElementB4 === void 0 ? void 0 : _document$getElementB4.offsetParent) !== null) { inv.wall = f - 16; } } for (let _ = 22; _ < 26; _++) { var _document$getElementB5; if (((_document$getElementB5 = document.getElementById(`actionBarItem${_}`)) === null || _document$getElementB5 === void 0 ? void 0 : _document$getElementB5.offsetParent) !== null) { inv.spike = _ - 16; } } for (let u = 26; u < 29; u++) { var _document$getElementB6; if (((_document$getElementB6 = document.getElementById(`actionBarItem${u}`)) === null || _document$getElementB6 === void 0 ? void 0 : _document$getElementB6.offsetParent) !== null) { inv.mill = u - 16; } } for (let I = 29; I < 31; I++) { var _document$getElementB7; if (((_document$getElementB7 = document.getElementById(`actionBarItem${I}`)) === null || _document$getElementB7 === void 0 ? void 0 : _document$getElementB7.offsetParent) !== null) { inv.mine = I - 16; } } for (let p = 31; p < 33; p++) { var _document$getElementB8; if (((_document$getElementB8 = document.getElementById(`actionBarItem${p}`)) === null || _document$getElementB8 === void 0 ? void 0 : _document$getElementB8.offsetParent) !== null) { inv.boostPad = p - 16; } } for (let x = 31; x < 33; x++) { var _document$getElementB9; if (((_document$getElementB9 = document.getElementById(`actionBarItem${x}`)) === null || _document$getElementB9 === void 0 ? void 0 : _document$getElementB9.offsetParent) !== null) { inv.trap = x - 16; } } for (let i = 22; i < 26; i++) { if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) { spikeType = i - 16; } } for (let i = 16; i < 19; i++) { if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) { foodType = i - 16; } } for (let i = 9; i < 16; i++) { if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) { secondary = i; } } for (let i = 0; i < 9; i++) { if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) { primary = i; } } for (let i=33;i<36;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ turretType = i - 16; } } for (let i=37;i<39;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ turretType = i - 16; } } }; const boostPlacer = repeater(70,() => {place(inv.trap);},60); const spikePlacer = repeater(86,() => {place(spikeType);},50); const placers = [boostPlacer, spikePlacer]; let prevCount = 0; const handleMutations = (mutationsList) => { for (const mutation of mutationsList) { if (mutation.target.id === "killCounter") { const count = parseInt(mutation.target.innerText, 10) || 0; if (count > prevCount) { setTimeout(()=>{ chat('Master Kill') },0); setTimeout(()=>{ chat('NOOB!!!') },950); setTimeout(()=>{ chat('Mod By EZ HACK') },1930); setTimeout(()=>{ chat('Mod By EZ HACK') },2200); prevCount = count; } if (count > prevCount) { setTimeout(()=>{ chat('Master Kill') },10); setTimeout(()=>{ chat('NOOB!!!') },950); setTimeout(()=>{ chat('Mod By EZ HACK') },1920); setTimeout(()=>{ chat('Mod By EZ HACK') },2200); prevCount = count; }}} }; const observer = new MutationObserver(handleMutations); observer.observe(document, { subtree: true, childList: true, }); document.addEventListener('keydown', (e) => { if (["allianceinput", "chatbox", "nameinput", "storeHolder"].includes(document.activeElement.id.toLowerCase())) return null; placers.forEach((t) => { t.start(e.keyCode); }); if (e.keyCode == 78) { if (cmds.automill == true) { cmds.automill = false } else { cmds.automill = true } } if (e.keyCode === 81) { for (let i=0;i<2;i++) { place(inv.food); } // Q }; if (e.keyCode == 16) { storeEquip(6); doNewSend(["c", [0, 31, 0]]); hat(6); setTimeout(() => {doNewSend(["c", [0, 21, 1]]); setTimeout(() => { doNewSend(["c", [0, 21, 1]]);}, 70)}, 70) } // SHIFT if (e.keyCode == 16) { storeEquip(6); doNewSend(["c", [0, 31, 0]]); hat(6); setTimeout(() => {doNewSend(["c", [0, 21, 1]]); setTimeout(() => { doNewSend(["c", [0, 21, 1]]);}, 70)}, 70) } // SHIFT if (e.keyCode == 17) { storeEquip(22); doNewSend(["c", [0, 21, 1]]); doNewSend(["c", [0, 22, 0]]); hat(22); setTimeout(() => { doNewSend(["c", [0, 21, 1]]);}, 70) } // CTRL if (e.keyCode == 17) { storeEquip(22); doNewSend(["c", [0, 21, 1]]); doNewSend(["c", [0, 22, 0]]); hat(22); setTimeout(() => { doNewSend(["c", [0, 21, 1]]);}, 70) } // CTRL if (e.keyCode == 32) { storeEquip(7); doNewSend(["c", [0, 0, 1]]); setTimeout(() => { storeEquip(53)}, 70); setTimeout(() => { doNewSend(["c", [0, 0, 1]]);}, 70) } // SPACE if (e.keyCode == 32) { storeEquip(7); doNewSend(["c", [0, 0, 1]]); setTimeout(() => { storeEquip(53)}, 70); setTimeout(() => { doNewSend(["c", [0, 0, 1]]);}, 70) } // SPACE if (e.keyCode == 67) { chat(''); doNewSend(["c", [0, 0, 0]]); hat(0); setTimeout(() => { doNewSend(["c", [0, 0, 1]])}, 70) } // C if (e.keyCode == 67) { chat('EZ KILL IM SUPER PRO'); doNewSend(["c", [0, 0, 0]]); hat(0); setTimeout(() => { doNewSend(["c", [0, 0, 1]])}, 70) } // C if (e.keyCode == 90) { storeEquip(13); doNewSend(["c", [0, 17, 1]]); doNewSend(["c", [0, 13, 0]]); hat(13); setTimeout(() => { doNewSend(["c", [0, 13, 1]]);}, 120) } // Z if (e.keyCode == 90) { storeEquip(13); doNewSend(["c", [0, 17, 1]]); doNewSend(["c", [0, 13, 0]]); hat(13); setTimeout(() => { doNewSend(["c", [0, 13, 1]]);}, 120) } // Z if (e.keyCode == 66) { chat('turret pls') } // B if (e.keyCode == 77) { chat('fak israel') } // M if (e.keyCode == 32) { chat('Spike insta kill...') } // SPACE if (e.keyCode == 71) { // G setTimeout(() => { doNewSend(["c", [0, 11, 1]]);}, 70) setTimeout(() => { doNewSend(["c", [0, 11, 1]]);}, 50) setTimeout(() => { doNewSend(["c", [0, 11, 1]]);}, 40) biomeHat(); biomeHat(); biomeHat(); biomeHat(); } if (e.keyCode == 69) { // E hitToggle = (hitToggle + 1) % 2; if(hitTToggle == 1){ if(hitToggle == 1) { if(!isEnemyNear){ doNewSend(["c", [0, 40, 0]]); } }else{ doNewSend(["c", [0, 6, 0]]); } } } if (e.keyCode == 48) { // 0 hitToggle = (hitToggle + 1) % 2; if(hitTToggle == 1){ if(hitToggle == 1) { if(!isEnemyNear){ doNewSend(["c", [0, 40, 0]]); } }else{ doNewSend(["c", [0, 6, 0]]); } } } if (e.keyCode == 72) { // H place(turretType, myPlayer.dir + toRad(45)); place(turretType, myPlayer.dir - toRad(45)); } if (e.keyCode == 32) { // SPACE place(inv.spike); doNewSend(["d", [1]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["G", [primary, true]]); doNewSend(["d", [1]]); weapon('primary') hit(true) setTimeout(() => { doNewSend(["c", [0, 6, 0]]); doNewSend(["d", [0]]); }, 400); setTimeout(() => { setTimeout(()=>{storeEquip(53); storeEquip(53) }, 70) setTimeout(() => { hit(false); storeEquip(6); hat(6) }, 350) }, 180) } 20 if (e.keyCode == 79) { // O place(inv.spike, myPlayer.dir + toRad(45)); place(inv.spike, myPlayer.dir - toRad(45)); place(inv.spike, myPlayer.dir + toRad(135)); place(inv.spike, myPlayer.dir - toRad(135)); } if (e.keyCode == 67) { // C noAcc(); setTimeout(() => { doNewSend(["c", [0, 0, 1]]);}, 70) setTimeout(() => { doNewSend(["c", [0, 0, 1]]);}, 50) setTimeout(() => { doNewSend(["c", [0, 0, 1]]);}, 40) } if (e.keyCode == 84) { // T if(stackInsta == false){ // autoaim = true; doNewSend(["d", [1]]); doNewSend(["G", [secondary, true]]); doNewSend(["c", [0, 53, 0]]); setTimeout(() => { doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["d", [1]]); doNewSend(["d", [0]]); }, 80); setTimeout(() => { doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 6, 0]]); doNewSend(["d", [0]]); // autoaim = false; }, 500); } else { // autoaim = true; doNewSend(["d", [1]]); doNewSend(["G", [secondary, true]]); doNewSend(["c", [0, 53, 0]]); setTimeout(() => { var sck = ""; doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["d", [1]]); doNewSend(["d", [0]]); for(let i = 0; i < 850; i++){ let caas = new Uint8Array(550); for(let i = 0; i <caas.length;i++){ caas[i] = Math.floor(Math.random()*270); sck += caas[i] }} ws.send(caas); }, 80); setTimeout(() => { doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 6, 0]]); doNewSend(["d", [0]]); // autoaim = false; }, 500); } } if (e.keyCode == 82) { // R // autoaim = true; doNewSend(["c", [0, 7, 0]]); doNewSend(["G", [primary, true]]); doNewSend(["G", [weapon('primary'), true]]); weapon('primary') doNewSend(["d", [1]]); } if (e.keyCode == 82) { // R if (stackInsta == false) { // autoaim = true; doNewSend(["c", [0, 7, 0]]); doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 0, 1]]) doNewSend(["d", [1]]); doNewSend(["c", [1]]); setTimeout(() => { weapon('secondary') doNewSend(["G", [secondary, true]]); }, 98); setTimeout(() => { weapon('secondary') doNewSend(["G", [secondary, true]]); }, 100); setTimeout(() => { weapon('secondary') doNewSend(["G", [secondary, true]]); }, 103.7); setTimeout(() => { doNewSend(["G", [secondary, true]]); doNewSend(["c", [0, 53, 0]]); doNewSend(["c", [0, 0, 1]]); }, 105); setTimeout(() => { doNewSend(["G", [secondary, true]]); }, 110); setTimeout(() => { doNewSend(["G", [secondary, true]]); }, 115); setTimeout(() => { doNewSend(["G", [primary, true]]); doNewSend(["d", [0, null]]); doNewSend(["c", [0, 6, 0]]); doNewSend(["c", [0, 0, 0]]); doNewSend(["c", [0, 0, 1]]); hat(6) // autoaim = false; }, 215); } else { // autoaim = true; doNewSend(["c", [0, 7, 0]]); doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 0, 1]]) doNewSend(["d", [1]]); doNewSend(["c", [1]]); setTimeout( () => { var sck = ""; doNewSend(["G", [secondary, true]]); weapon('secondary') doNewSend(["c", [0, 53, 0]]); doNewSend(["c", [0, 0, 1]]); for(let i = 0; i < 850; i++){ let caas = new Uint8Array(550); for(let i = 0; i <caas.length;i++){ caas[i] = Math.floor(Math.random()*270); sck += caas[i] }} ws.send(caas); }, 98); setTimeout(() => { doNewSend(["G", [secondary, true]]); }, 200); setTimeout(() => { doNewSend(["G", [primary, true]]); doNewSend(["d", [0, null]]); doNewSend(["c", [0, 6, 0]]); doNewSend(["c", [0, 0, 0]]); doNewSend(["c", [0, 0, 1]]); hat(6) acc(21) // autoaim = false; }, 215);//215 }} }) document.addEventListener("keydown", function(event) { if (event.keyCode === 45) { // INSERT const chatHolder = document.getElementById("gameUI"); if (chatHolder) { const currentDisplay = chatHolder.style.display; chatHolder.style.display = currentDisplay === "none" ? "block" : "none"; }} }); document.addEventListener('keyup', (e) => { if (["allianceinput", "chatbox", "nameinput", "storeHolder"].includes(document.activeElement.id.toLowerCase())) return null; placers.forEach((t) => { t.stop(e.keyCode); }) }) document.addEventListener("mousedown", event => { if (event.button == 1) { place(inv.trap, myPlayer.dir + toRad(45)); place(inv.trap, myPlayer.dir - toRad(45)); place(inv.trap, myPlayer.dir + toRad(135)); place(inv.trap, myPlayer.dir - toRad(135)); } }) document.addEventListener("mousedown", (event) => { if (event.button == 4) { doNewSend(["d", [1]]); doNewSend(["c", [0, 40, 0]]); doNewSend(["G", [primary, true]]); setTimeout(()=>{ doNewSend(["d", [0]]); doNewSend(["c", [0, 6, 0]]); },100); } else if (event.button == 4) { doNewSend(["d", [1]]); doNewSend(["c", [0, 40, 0]]); doNewSend(["G", [primary, true]]); setTimeout(()=>{ doNewSend(["d", [0]]); doNewSend(["c", [0, 6, 0]]); },110); } }) document.addEventListener("mousedown", event => { if (event.button == 2) { weapon('primary') storeEquip(7) storeEquip(7) setTimeout(() => { storeEquip(53); hat(53) }, 100) setTimeout(() => { storeEquip(6); hat(6) }, 310) } }); let ping = document.createElement("div"); ping = document.getElementById("pingDisplay"); ping.style.top = "10px"; ping.style.fontSize = "12px"; ping.style.display = "block"; document.body.append(ping); window.onbeforeunload = null; class forReal { constructor() { this.time = 100; this.hatIndex = [50, 28, 29, 30, 36, 37, 38, 44, 35, 43, 49, 57]; this.currentIndex = 0; this.isActivated = false; } newTick(callback, delay) { setTimeout(callback, delay); } toggleActivation() { this.isActivated = !this.isActivated; if (this.isActivated) { chat('on_L') this.equip(); }else{ setTimeout(()=>{ chat('off_L') window.storeEquip(0); }, 500); }} equip() { if (this.currentIndex < this.hatIndex.length) { let equipNumber = this.hatIndex[this.currentIndex]; window.storeEquip(equipNumber); this.currentIndex++; } else { this.currentIndex = 0; } if (this.isActivated) { setTimeout(() => { this.newTick(() => this.equip(), this.time); }, 80); }} start() { document.body.onkeyup = (e) => { if (e.keyCode === 76) { this.toggleActivation(); }};}} const equipManager = new forReal(); equipManager.start(); (function() { let oldLineTo = CanvasRenderingContext2D.prototype.lineTo; let oldFillRect = CanvasRenderingContext2D.prototype.fillRect; CanvasRenderingContext2D.prototype.lineTo = function() { if (this.globalAlpha != .06) oldLineTo.apply(this, arguments); }; document.getElementById("enterGame").addEventListener('click', rwrw) var RLC = 0 var MLC = 0 var KFC = 0 function rwrw() { console.log("Game Start") S = 1; M = 1; H = 1 } var H = 1, M = 1, S = 1 setInterval(() => { RLC++ S++ }, 1000); setInterval(() => { if (RLC == 60) { MLC++ RLC = 0 } if (MLC == 60) { KFC++ MLC = 0 } if (S == 60) { M++ S = 0 } if (M == 60) { H++ M = 0 } }, 0); const { msgpack } = window function AntiKick() { this.resetDelay = 500 this.packetsLimit = 40 this.ignoreTypes = [ "pp", "rmd" ] this.ignoreQueuePackets = [ "5", "c", "33", "2", "7", "13c" ] this.packetsStorage = new Map() this.tmpPackets = [] this.packetsQueue = [] this.lastSent = Date.now() this.onSend = function(data) { const binary = new Uint8Array(data) const parsed = msgpack.decode(binary) if (Date.now() - this.lastSent > this.resetDelay) { this.tmpPackets = [] this.lastSent = Date.now() } if (!this.ignoreTypes.includes(parsed[0])) { if (this.packetsStorage.has(parsed[0])) { const oldPacket = this.packetsStorage.get(parsed[0]) switch (parsed[0]) { case "2": case "33": if (oldPacket[0] == parsed[1][0]) return true break } } if (this.tmpPackets.length > this.packetsLimit) { if (!this.ignoreQueuePackets.includes(parsed[0])) { this.packetsQueue.push(data) } return true } this.tmpPackets.push({ type: parsed[0], data: parsed[1] }) this.packetsStorage.set(parsed[0], parsed[1]) } return false } } const antiKick = new AntiKick() let firstSend = false window.WebSocket.prototype.send = new Proxy(window.WebSocket.prototype.send, { apply: function(target, _this) { if (!firstSend) { _this.addEventListener("message", (event) => { if (!antiKick.packetsQueue.length) return const binary = new Uint8Array(event.data) const parsed = msgpack.decode(binary) if (parsed[0] === "33") { _this.send(antiKick.packetsQueue[0]) antiKick.packetsQueue.shift() } }) firstSend = true } if (antiKick.onSend(arguments[2][0])) return return Reflect.apply(...arguments) } }) })(); ;(async () => { const MARKER_COLOUR = { MY_PLAYER: { render: true, colour: "#a7f060" }, TEAMMATE: { render: true, colour: "#fceb65" }, ENEMY: { render: true, colour: "#f76363" } } const MARKER_SIZE = 10 function getItemColour(sid) { if (sid === myPlayerSID) return MARKER_COLOUR.MY_PLAYER if (teammates.includes(sid)) return MARKER_COLOUR.TEAMMATE return MARKER_COLOUR.ENEMY } var myPlayerSID = null var teammates = [] let init = false await new Promise(async (resolve) => { let { send } = WebSocket.prototype WebSocket.prototype.send = function (...x) { send.apply(this, x) this.send = send if (!init) { init = true this.addEventListener("message", (e) => { if (!e.origin.includes("moomoo.io") && !unsafeWindow.privateServer) return const [packet, data] = msgpack.decode(new Uint8Array(e.data)) switch (packet) { case PACKETCODE.RECEIVE.setupGame: myPlayerSID = data[0] break case PACKETCODE.RECEIVE.setPlayerTeam: if (!data[0][1]) { teammates = [] } break case PACKETCODE.RECEIVE.setAlliancePlayers: teammates = [] for (let i = 0; i < data[0][1].length; i += 2) { const [sid, name] = data[0][1].slice(i, i + 2) teammates.push(sid) } break } }) } resolve(this) } }) let item = null const symbol = Symbol("isItem") Object.defineProperty(Object.prototype, "isItem", { get() { if (this[symbol] === true) { item = this } return this[symbol] }, set(value) { this[symbol] = value }, configurable: true }) function drawMarker(ctx) { if (!item || !item.owner || myPlayerSID === null) return const type = getItemColour(item.owner.sid) if (!type.render) return ctx.fillStyle = type.colour ctx.beginPath() ctx.arc(0, 0, MARKER_SIZE, 0, 2 * Math.PI) ctx.fill() item = null } CanvasRenderingContext2D.prototype.restore = new Proxy(CanvasRenderingContext2D.prototype.restore, { apply(target, _this, args) { drawMarker(_this) return target.apply(_this, args) } }) })() (function() {'use strict';const htmlCanvas = document.getElementById("canvas");const offscreen = htmlCanvas.transferControlToOffscreen();const worker = new Worker("offscreencanvas.js");worker.postMessage({ canvas: offscreen }, [offscreen]);})(); if (window.location.hostname.includes("moomoo.io") || window.location.hostname.includes("sandbox.moomoo.io") || window.location.hostname.includes("dev.moomoo.io")) { (() => { "use strict"; const PACKET_LIMITS = { PER_MINUTE: 1000, PER_SECOND: 80, }; const IGNORED_PACKET_TYPES = new Set(["pp", "rmd"]); const IGNORED_QUEUE_PACKETS = new Set(["5", "c", "33", "2", "7", "13c"]); class AntiKick { constructor() { this.resetRateLimit(); } resetRateLimit() { this.packetHistory = new Map(); this.packetQueue = []; this.lastSent = Date.now(); } isRateLimited(data) { const binaryData = new Uint8Array(data); if (Date.now() - this.lastSent > PACKET_LIMITS.PER_MINUTE) { this.resetRateLimit(); } const packetType = binaryData[0]; if (!IGNORED_PACKET_TYPES.has(packetType)) { if (this.packetHistory.has(packetType) && (("2" === packetType || "33" === packetType) && this.packetHistory.get(packetType)[0] === binaryData[1])) { return true; } if (this.packetQueue.length > PACKET_LIMITS.PER_SECOND) { return IGNORED_QUEUE_PACKETS.has(packetType) || this.packetQueue.push(data); } this.packetQueue.push({ type: packetType, data: binaryData.slice(1) }); this.packetHistory.set(packetType, binaryData.slice(1)); } return false; } } const antiKick = new AntiKick(); WebSocket.prototype.send = new Proxy(WebSocket.prototype.send, { apply(target, thisArg, binary) { if (!thisArg.messageListenerSet) { thisArg.addEventListener("message", (event) => { if (antiKick.packetQueue.length) { const binaryData = new Uint8Array(event.data); if (binaryData[0] === 51) { thisArg.send(antiKick.packetQueue[0]); antiKick.packetQueue.shift(); } } }); thisArg.messageListenerSet = true; } if (!antiKick.isRateLimited(binary)) { return Reflect.apply(target, thisArg, binary); } }, }); })(); } var antii = document.querySelector("#anti") antii.addEventListener('change', function() { if (this.checked) { anti = true; } else { anti = false; } }); var hitBackk = document.querySelector("#hitBack") hitBackk.addEventListener('change', function() { if (this.checked) { hitBack = true; } else { hitBack = false; } }); var stackInstaa = document.querySelector("#stackInsta") stackInstaa.addEventListener('change', function() { if (this.checked) { stackInsta = true; } else { stackInsta = false; } }); // www.mohmoh.eu localStorage.moofoll = !0; localStorage.setItem("res", 1000000);