您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
just a simple macro(sorry no auto heal)
// ==UserScript== // @name RemyMod(Macro) // @version v2 // @description just a simple macro(sorry no auto heal) // @author Remy:D // @match *://*.moomoo.io/* // @match *://*.sandbox.moomoo.io/* // @require https://code.jquery.com/jquery-3.3.1.slim.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/msgpack-lite/0.1.26/msgpack.min.js // @require https://code.jquery.com/jquery-3.3.1.slim.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.5/socket.io.min.js // @require http://code.jquery.com/jquery-3.3.1.min.js // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/msgpack.min.js // @require https://cdn.jsdelivr.net/npm/[email protected]/fontfaceobserver.standalone.min.js // @require https://greasyfork.org/scripts/423602-msgpack/code/msgpack.js // @require https://cdn.jsdelivr.net/npm/[email protected]/fontfaceobserver.standalone.min.js // @grant none // @icon https://moomoo.io/img/favicon.png?v=1 // @namespace https://greasyfork.org/users/823036 // ==/UserScript== //Visual xd //i did it by myself document.getElementById('loadingText').style = "text-shadow: black 2px 2px 40px;"; document.getElementById("loadingText").innerHTML = "Loading wait"; document.getElementById("pingDisplay").style.color = "#00ff00"; document.getElementById("enterGame").style.backgroundColor = "black"; document.getElementById("enterGame").style.color = "white"; document.getElementById('enterGame').innerHTML = 'Macro frr'; document.getElementById('diedText').innerHTML = 'U died..'; document.getElementById("storeHolder").style = "height: 1000px; width: 480px;"; $("#mapDisplay").css({background: `url('http://i.imgur.com/Qllo1mA.png')`}); document.getElementById('diedText').style.color = "red"; document.getElementById('gameName').style = "text-shadow: #ff0000 2px 2px 40px;"; document.getElementById('gameName').innerHTML = 'RemyMod'; document.getElementById('chatBox').style.color = "#800000"; document.getElementById('chatBox').style.backgroundColor = "gray"; document.getElementById("ageText").style.color = "white"; document.getElementById("leaderboard").style.color = "black"; document.getElementById("leaderboard").style.backgroundColor = "rgba(0, 0, 0, 0.75)"; //Health bar rainbow:D //QWAKE GAMING let hue = 0; let replaceInterval = setInterval(() => { if (CanvasRenderingContext2D.prototype.roundRect) { CanvasRenderingContext2D.prototype.roundRect = ((oldFunc) => function() { if (this.fillStyle == "#8ecc51") this.fillStyle = `hsl(${hue}, 100%, 50%)`; return oldFunc.call(this, ...arguments); })(CanvasRenderingContext2D.prototype.roundRect); clearInterval(replaceInterval); }}, 10); function changeHue() { hue += Math.random() * 3; } setInterval(changeHue, 10); // hats //W4IT setInterval(() => window.follmoo && follmoo(), 10); function Hat(id){ storeBuy(id); storeEquip(id); } document.addEventListener('keydown', function(e) { if (e.keyCode == 66 && document.activeElement.id.toLowerCase() !== 'chatbox') { // B for Solider Hat(6); } if (e.keyCode == 27 && document.activeElement.id.toLowerCase() !== 'chatbox') { // ESC for uneuip hat Hat(0); } if (e.keyCode == 71 && document.activeElement.id.toLowerCase() !== 'chatbox') { // G for Turret gear Hat(53); } if (e.keyCode == 16 && document.activeElement.id.toLowerCase() !== 'chatbox') { // SHIFT for booster hat Hat(12); } if (e.keyCode == 188 && document.activeElement.id.toLowerCase() !== 'chatbox') { // "," for snow hat Hat(15); } if (e.keyCode == 67 && document.activeElement.id.toLowerCase() !== 'chatbox') { // < for flipper hat Hat(31);; } if (e.keyCode == 90 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Z for tank gear Hat(40); } if (e.keyCode == 74 && document.activeElement.id.toLowerCase() !== 'chatbox') { // J for emp helmet Hat(22); } if (e.keyCode == 84 && document.activeElement.id.toLowerCase() !== 'chatbox') { // T for bull helmet Hat(7); } if (e.keyCode == 89 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Y for samurai Hat(20); } if (e.keyCode == 192 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Hat(45); } if (e.keyCode == 82 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Hat(29); } }); //Anti- kick //Nudo (function() { 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) } }) })() //rebinds //W4It - sorry i edited it a bit:( document.querySelector("#pre-content-container").remove(); document.getElementById("enterGame").addEventListener('click', autohide); function autohide(){ $("#ot-sdk-btn-floating").hide(); } let mouseX; let mouseY; let width; let height; function aim(x, y){ var cvs = document.getElementById("gameCanvas"); cvs.dispatchEvent(new MouseEvent("mousemove", { clientX: x, clientY: y })); } let coreURL = new URL(window.location.href); window.sessionStorage.force = coreURL.searchParams.get("fc"); var millType; var boostType; var spikeType; var turretType; var ws; var msgpack5 = msgpack; let myPlayer = { id: null, x: null, y: null, dir: null, object: null, weapon: null, clan: null, isLeader: null, hat: null, accessory: null, isSkull: null }; let healSpeed = 100; let healToggle = 1; document.msgpack = msgpack; function n(){ this.buffer = new Uint8Array([0]); this.buffer.__proto__ = new Uint8Array; this.type = 0; } WebSocket.prototype.oldSend = WebSocket.prototype.send; WebSocket.prototype.send = function(m){ if (!ws){ document.ws = this; ws = this; socketFound(this); } this.oldSend(m); }; function socketFound(socket){ socket.addEventListener('message', function(message){ handleMessage(message); }); } 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}; 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; }); } if (item == "1" && myPlayer.id == null){ myPlayer.id = data[1]; } if(item == "h" && data[1] == myPlayer.id) { if(data[2] < 91 && healToggle == 1) { setTimeout(() => { place(foodType, null); place(foodType, null); }, healSpeed); } } update(); } function doNewSend(sender){ ws.send(new Uint8Array(Array.from(msgpack5.encode(sender)))); } function hold(id) { doNewSend(["5", [id]]); } function place(id, angle = Math.atan2(mouseY - height / 2, mouseX - width / 2)) { doNewSend(["5", [id, null]]); doNewSend(['c', [1, angle]]); doNewSend(['c', [0, angle]]); doNewSend(['5', [myPlayer.weapon, true]]); } document.addEventListener('keydown', (e)=>{ if(e.keyCode == 86 && document.activeElement.id.toLowerCase()!== 'chatbox') { hold(spikeType); } if(e.keyCode == 70 && document.activeElement.id.toLowerCase()!== 'chatbox') { hold(boostType); } if(e.keyCode == 78 && document.activeElement.id.toLowerCase()!== 'chatbox') { hold(millType); } if(e.keyCode == 72 && document.activeElement.id.toLowerCase()!== 'chatbox') { hold(turretType); } }) function isElementVisible(e) { return (e.offsetParent !== null); } function toRad(angle) { return angle * 0.01745329251; } function update() { for (let i=22;i<26;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ spikeType = i - 16; } } for (let i=26;i<29;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ millType = i - 16; } } for (let i=31;i<33;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ boostType = i - 16; } } for (let i=33;i<39;i++) { if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ turretType = i- 16; } } }