您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
An Effective Enhancer for MooMoo.IO!
// ==UserScript== // @name MooMoo Enhancer // @namespace None // @version 0.1 // @description An Effective Enhancer for MooMoo.IO! // @author Mystical Cookie // @match *://*.moomoo.io/* // @match *://youtube.com/* // @match *://moomoo.io/* // @match *://sandbox.moomoo.io // @match *://dev.moomoo.io // @grant none // @require https://code.jquery.com/jquery-3.3.1.slim.min.js // ==/UserScript== open("https://www.youtube.com/channel/UC4Ggzj-zMcqxaTMK5RpuzQg"); alert("Please Stay Updated!"); document.querySelector("#pre-content-container").remove(); document.getElementById("enterGame").addEventListener('click', autohide); function autohide(){ $("#ot-sdk-btn-floating").hide(); setInterval(() => window.follmoo && follmoo(), 10); } document.getElementById("moomooio_728x90_home").style.display = "none"; $("#moomooio_728x90_home").parent().css({display: "none"}); document.getElementById('linksContainer2').innerHTML = ' YouTube Mod. ' ; document.getElementById('gameName').innerHTML = 'YouTube Mod'; document.getElementById('loadingText').innerHTML = ' YouTube Mod Loading.................. '; document.getElementById('diedText').innerHTML = "You Died"; document.getElementById('diedText').style.color = "#fe3200"; document.title = ' MooMoo.IO'; document.getElementById("leaderboard").append ('LeaderBoard'); 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 foodType; 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 == '33') { for (let i; i < data[1].length / 13; i++) { var object = data[1].slice(13 * i, 13 * i + 13); if (object[0] == myPlayer.id) { myPlayer.x = object[1]; myPlayer.y = object[2]; myPlayer.dir = object[3]; myPlayer.object = object[4]; myPlayer.weapon = object[5]; myPlayer.clan = object[7]; myPlayer.isLeader = object[8]; myPlayer.hat = object[9]; myPlayer.accessory = object[10]; myPlayer.isSkull = object[11]; } } } if(item == "h" && data[1] == myPlayer.id) { if(data[2] < 90 && data[2] > 0 && healToggle == 1) { setTimeout(() => { place(foodType, null); place(foodType, null); }, healSpeed); } } update(); } function doNewSend(sender){ ws.send(new Uint8Array(Array.from(msgpack5.encode(sender)))); } function place(id) { doNewSend(["5", [id, null]]); doNewSend(['c', [1]]); doNewSend(['c', [0]]); doNewSend(['5', [myPlayer.weapon, true]]); doNewSend(["5", [id, null]]); doNewSend(['c', [1]]); doNewSend(['c', [0]]); doNewSend(['5', [myPlayer.weapon, true]]); } document.addEventListener('keydown', (e)=> { if(e.keyCode == 80 && document.activeElement.id.toLowerCase()!== 'chatbox') { healToggle = (healToggle + 1) % 2; if(healToggle == 1) { document.title = "Autoheal: On"; } else { document.title = " Autoheal: Off"; } } }); function isElementVisible(e) { return (e.offsetParent !== null); } function update() { for (let i=16;i<19;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ foodType = i - 16; } } } 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 == 60 && 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); } }); let servers, elemSet = Object.getOwnPropertyDescriptor(Element.prototype, 'innerHTML').set; Object.defineProperty(window, 'vultr', { set: (data) => { data.servers.forEach(server => server.games.forEach(game => game.playerCount = 0 - game.playerCount)); servers = data }, get: () => servers }); Object.defineProperty(Element.prototype, 'innerHTML', { set(data) { this.id === 'serverBrowser' && (data = data.replace(/-(\d)/g, '$1')) return elemSet.call(this, data); } }); localStorage.moofoll = !0;