您需要先安装一个扩展,例如 篡改猴、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]`);
- }
- }
- }
- });
- }