您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Map Movement
// ==UserScript== // @name Navigation PRO // @namespace - // @version 1.2 // @description Map Movement // @author Night // @match *://moomoo.io/* // @grant none // ==/UserScript== var ws; WebSocket.prototype.oldSend = WebSocket.prototype.send; WebSocket.prototype.send = function(m){ this.oldSend(m); if (!ws){ ws = this; socketFound(this); } }; function socketFound(socket){ socket.addEventListener('message', function(message){ handleMessage(message); }); } var playersList = []; function parseWSMsg(s){ if (s.indexOf("42") === -1) return -1; var o = s.substring(s.indexOf("[")); return JSON.parse(o); } var player = function(x,y,id,me){ this.x = x; this.y = y; this.id = id; this.me = me; this.targets = [null, null]; } function handleMessage(m){ var info = parseWSMsg(m.data); if (info[0] == "1" && !playersList[0]){ var x = new player(null, null, info[1], true); playersList.push(new player(null, null, info[1], true) ) } if (info[0] == "3"){ let data = info.slice(1, info.length); for (var i=0;i<data.length;i++){ let playerData = data.slice(i*13,(i*13)+13)[0]; if (playerData[0] == playersList[0].id){ playersList[0].x = playerData[1]; playersList[0].y = playerData[2]; if (playersList[0].targets[0]){ let distance = Math.sqrt( Math.pow(playersList[0].targets[1]-playersList[0].y, 2) + Math.pow(playersList[0].targets[0] - playersList[0].x, 2)); if (distance < 100){ playersList[0].targets = [null, null]; for (let elem of document.getElementsByClassName("mapTarget")){ elem.remove(); } ws.send(`42["3",null]`); } else { ws.send(`42["3",null]`); let delta_y = playersList[0].targets[1]-playersList[0].y; let delta_x = playersList[0].targets[0]-playersList[0].x; let angle = Math.atan2(delta_y, delta_x); ws.send(`42["3",${angle}]`); } } } } } document.addEventListener("click", (event)=> { [x, y] = [event.clientX, event.clientY]; if (window.innerWidth >= 770){ if ((20 <= x && x <= 150) && (710 <= y && y <= 840)){ let mapSize = [14365, 14365]; let boxSize = [130, 130]; let targets = [x-20, y-710].map( (n) => { return n/130*14365; } ); playersList[0].targets = targets; for (let elem of document.getElementsByClassName("mapTarget")){ elem.remove(); } let newTarget = document.createElement("div"); newTarget.style = `background:red; width:8.5px; height:8.5px; border-radius:50%; position:absolute; left: ${x}px; top:${y}px; z-index:100`; newTarget.className = "mapTarget"; document.getElementsByTagName("body")[0].appendChild(newTarget); } } }); document.addEventListener("keydown", (event)=> { if (event.code == "Escape"){ if (playersList[0]){ if (playersList[0].targets[0]){ playersList[0].targets = [null, null]; for (let elem of document.getElementsByClassName("mapTarget")){ elem.remove(); } ws.send(`42["3",null]`); } } } }); }