Moomoo.io - AutoScroll

Key-triggered autoscroll: Check the code for more info. I've ditched the 'ping' feature from the 'R' key to keep the bull helmet scroll incognito. You can also ping by simply clicking the minimap.

目前為 2023-10-07 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Moomoo.io - AutoScroll
// @version      0.1
// @description  Key-triggered autoscroll: Check the code for more info. I've ditched the 'ping' feature from the 'R' key to keep the bull helmet scroll incognito. You can also ping by simply clicking the minimap.
// @ - Bull Hat (Key: "R")
// @ - Soldier Helmet (Key: "G")
// @ - Tank Gear (Key: "Z")
// @ - Bearbarian Armor (Key: "M")
// @ - Booster Hat (Key: "B")
// @ - Flipper Hat (Key: "Y")
// @ - EMP Helmet (Key: "J")
// @ - Samurai Armor (Key: "U")
// @ - Turret Hat (Key: "T")
// @ - Fluff Head (Key: "I")
// @ - Spike Gear (Key: "H")
// @ - Monkey Tail (Key: "O")
// @author       Seryo
// @match        *://*.moomoo.io/*
// @namespace    https://gf.qytechs.cn/users/1190411
// @icon         https://cdn.glitch.com/82ae8945-dcc6-4276-98a9-665381b4cd2b/cursor12.png
// @license      MIT
// @grant        none
// @require      https://gf.qytechs.cn/scripts/440839-moomoo-items/code/MooMoo%20Items.js?version=1023778
// @require      https://gf.qytechs.cn/scripts/423602-msgpack/code/msgpack.js?version=1005014
// ==/UserScript==

class MooMoo {
    static get hotkeys() {
        return {
            hat_hotkeys: {
                bull_hat: { id: 7, key: "r", scroll: { toggle: true, time: 0, top: 1450 } },
                soldier_helmet: { id: 6, key: "g", scroll: { toggle: true, time: 0, top: 1200 } },
                tank_gear: { id: 40, key: "z", scroll: { toggle: true, time: 0, top: 2050 } },
                bearbarian_armor: { id: 26, key: "m", scroll: { toggle: true, time: 0, top: 1600 } },
                booster_hat: { id: 12, key: "b", scroll: { toggle: true, time: 0, top: 1550 } },
                flipper_hat: { id: 31, key: "y", scroll: { toggle: true, time: 0, top: 1000 } },
                emp_helmet: { id: 22, key: "j", scroll: { toggle: true, time: 0, top: 1500 } },
                samurai_armor: { id: 20, key: "u", scroll: { toggle: true, time: 0, top: 1900 } },
                turret_hat: { id: 53, key: "t", scroll: { toggle: true, time: 0, top: 1850 } },
                fluff_head: { id: 30, key: "i", scroll: { toggle: true, time: 0, top: 200 } },
                spike_gear: { id: 11, key: "h", scroll: { toggle: true, time: 0, top: 1800 } },
                monkey_tail: { id: 11, key: "o", scroll: { toggle: true, time: 0, top: 250 } }
            }
        };
    }

    static init(arg) {
        this.hathotkeys();
        this.canvas = document.getElementById("gameCanvas");
        this.result = "";
        this.initcps();
        this.doc = document;
        this.initlisteners();
        this.id = `#${arg.match(/d="?g(.*)?I/g)[0].match(/(?=g).*(?=)/)[0]}`;
        window.addEventListener("load", (event) => {
            MooMoo.initHTML();
        });
    }

    static get() {
        return new Promise((resolve) => {
            fetch(arguments[0])
                .then((res) => res.text())
                .then((res) => {
                    return resolve(res);
                });
        });
    }

    static smoothscroll(scrolltop, time) {
        $('#storeHolder').animate({
            scrollTop: scrolltop
        }, time);
    }

    static hathotkeys() {
        let hotkeys = this.hotkeys.hat_hotkeys;
        let locale = this;
        for (let i in this.hotkeys.hat_hotkeys) {
            document.addEventListener('keydown', (e) => {
                if (document.activeElement.type == "text") return;
                if (e.key.toLowerCase() == hotkeys[i].key) {
                    if (!hotkeys[i].scroll.toggle) return;

                    if (document.getElementById("storeMenu").style.display === "block") {
                        locale.smoothscroll(hotkeys[i].scroll.top, hotkeys[i].scroll.time);
                    }

                    e.preventDefault();
                    e.stopPropagation();
                }
            });
        }
    }
}

(async () => {
    const game = await MooMoo.get(document.location.href);
    MooMoo.init(game);
    var ws;
    WebSocket.prototype._send = WebSocket.prototype.send;
    WebSocket.prototype.send = function (m) {
        if (MooMoo.decode(m)[0] == "c") {
            MooMoo.handleHit(m);
        }
        if (!ws) {
            document.ws = this;
            ws = this;
            this.addEventListener('message', function (message) {
                MooMoo.setws(this);
                MooMoo.getwsmessage(message);
            });
        }
        this._send(m);
    };
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址