op-bots.com

Bots for more clons

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==UserScript==
// @name         op-bots.com
// @namespace    Copyright © op-bots.com
// @version      0.4 alpha
// @description  Bots for more clons
// @author       SizRex
// @require      https://ajax.googleapis.com/ajax/libs/jquery/latest/jquery.min.js
// @match        *://agar.bio/*
// @match        *://play.agario0.com/*
// @match        *://cellcraft.io/*
// @match        *://agarz.com/*
// @match        *://germs.io/*
// @grant        none
// ==/UserScript==
((global, jq) => {
    global.userscript = {
        ws: null,
        sniffer: null,
        server: null,
        x: 0,
        y: 0,
        sendTime: 0,
        moveInt: null,
        bL: 0
    };

    global.userscript.sniffer = () => {
        if(global.location.origin == "http://agar.bio") {
            global.WebSocket.prototype.prototype.opsend = global.WebSocket.prototype.prototype.send;
            global.WebSocket.prototype.prototype.send = function() {
                this.opsend.apply(this, arguments);
                if(this.url != global.userscript.ws.url) {
                    var msg = new DataView(arguments[0]);
                    if (msg.byteLength == 13) {
                        if (msg.getInt8(0, true) == 16 || msg.getUint8(0, true) == 16) {
                            global.userscript.x = msg.getInt32(1, true);
                            global.userscript.y = msg.getInt32(5, true);
                            global.userscript.bL = msg.byteLength;
                        }
                    } else if(msg.byteLength == 21) {
                        if (msg.getUint8(0, true) == 16 || msg.getUint8(0, true) == 16) {
                            global.userscript.x = msg.getFloat64(1, true);
                            global.userscript.y = msg.getFloat64(9, true);
                            global.userscript.bL = msg.byteLength;
                        }
                    }
                    global.userscript.server = this.url;
                };
            };
        } else {
            global.WebSocket.prototype.opsend = global.WebSocket.prototype.send;
            global.WebSocket.prototype.send = function() {
                this.opsend.apply(this, arguments);
                if(this.url != global.userscript.ws.url) {
                    var msg = new DataView(arguments[0]);
                    if (msg.byteLength == 13) {
                        if (msg.getInt8(0, true) == 16 || msg.getUint8(0, true) == 16) {
                            global.userscript.x = msg.getInt32(1, true);
                            global.userscript.y = msg.getInt32(5, true);
                            global.userscript.bL = msg.byteLength;
                        }
                    } else if(msg.byteLength == 21) {
                        if (msg.getUint8(0, true) == 16 || msg.getUint8(0, true) == 16) {
                            global.userscript.x = msg.getFloat64(1, true);
                            global.userscript.y = msg.getFloat64(9, true);
                            global.userscript.bL = msg.byteLength;
                        }
                    }
                    global.userscript.server = this.url;
                };
            };
        }
        global.connection();
    }

    global.userscript.createBuffer = (length) => {
        return new DataView(new ArrayBuffer(length));
    }

    global.userscript.send = (buf) => {
        global.userscript.ws.send(buf);
    }

    global.connection = () => {
        global.userscript.ws = new WebSocket("ws://35.242.128.107:8000");
        global.userscript.ws.binaryType = "arraybuffer";
        global.userscript.ws.onopen = () => {
            setTimeout(() => {
                let buf = global.userscript.createBuffer(1);
                buf.setUint8(0, 1);
                global.userscript.send(buf);
                global.userscript.moveInt = setInterval(function() {
                    let buf = global.userscript.createBuffer(29);
                    buf.setUint8(0, 4);
                    buf.setFloat64(1, global.userscript.x, true);
                    buf.setFloat64(9, global.userscript.y, true);
                    buf.setFloat64(17, global.userscript.bL, true);
                    buf.setUint32(25, true);
                    global.userscript.send(buf);
                },100);
            },5000);
        };
        global.userscript.ws.onclose = () => {
            clearInterval(global.userscript.moveInt);
            if(global.userscript.serverInt) clearInterval(global.userscript.serverInt);
            setTimeout(() => {
                global.connection();
            }, 1500);
        };
        global.userscript.ws.onmessage = (message) => {
            let offset = 0;
            message = new DataView(message.data);
            let opcode = message.getUint8(offset++);
            switch(opcode) {
                case 0: {
                    console.log("Я получил сообщение опкод -", opcode);
                    global.userscript.serverInt = setInterval(function() {
                        let buf = global.userscript.createBuffer(5 + global.userscript.server.length + global.location.origin.length * 2);
                        let off = 0;
                        buf.setUint8(off++, 2);
                        for(let i = 0; i < global.userscript.server.length; i++) {
                            buf.setUint8(off++, global.userscript.server.charCodeAt(i));
                        }
                        buf.setUint8(off++, 0);
                        for(let i = 0; i < global.location.origin.length; i++) {
                            buf.setUint16(off, global.location.origin.charCodeAt(i), true);
                            off += 2;
                        }
                        buf.setUint16(off++, 0, true);
                        global.userscript.send(buf);

                    },500);
                } break;
                case 1: {
                    console.log("Я получил сообщение опкод -", opcode);
                } break;
                case 2: {
                    global.userscript.sendPing();
                } break;
                case 3: {
                    console.log("Я получил сообщение опкод -", opcode);
                    jq("#botCount").css("color", "lime").text(message.getUint16(1, true) + "/" + message.getUint16(3, true));
                    jq("#ping").css("color", "lime").text(message.getUint16(7, true) + "ms");
                    if(message.getUint16(9, true) == 2) {
                        jq("#timeLeft").css("color", "lime").text("Infinity");
                    } else if(message.getUint16(9, true) == 1){
                        jq("#timeLeft").css("color", "lime").text((message.getUint16(5, true) / 3600 % 24 >> 0) +":"+ (message.getUint16(5, true) / 60 % 60 >> 0)+":"+(message.getUint16(5, true) % 60 >> 0));
                    }
                } break;
            }
        };
    }

    global.userscript.sendPing = () => {
        let buf = global.userscript.createBuffer(1);
        buf.setUint8(0, 3);
        global.userscript.send(buf);
    }

    global.addEventListener("keydown", (key) => {
        key = key.which || key.keyCode;
        switch(key) {
            case 88: {
                let buf = global.userscript.createBuffer(1);
                buf.setUint8(0, 5);
                global.userscript.send(buf);
            } break;
            case 67: {
                let buf = global.userscript.createBuffer(1);
                buf.setUint8(0, 6);
                global.userscript.send(buf);
            } break;
            case 67: {
                let buf = global.userscript.createBuffer(1);
                buf.setUint8(0, 7);
                global.userscript.send(buf);
            } break;
        }
    });

    jq("#canvas").after("<div style='background:rgba(0, 0, 0, 0.87); border-radius: 10% 25%; width: 200px; top: 10px; left: 10px; display: block; position: absolute; text-align: center; font-size: 15px; color: #ffffff; padding: 3px; font-family: Ubuntu;'>OpBots Client<font color='#7FFF00'></font><br>Bots: <a id='botCount'><font color='red'>No package!</font></a><br>Time Left: <a id='timeLeft'><font color='#7FFF00'>00:00:00</font></a><br>Ping: <a id='ping'><font color='#7FFF00'>0ms</font></a><br><font color='#05A7E6'>E</font color='#ffffff'> - Split Bots<br><font color='#05A7E6'>R</font color='#ffffff'> - Eject Bots<br><font color='#05A7E6'>C</font color='#ffffff'> - Chat Spam: <a id='chatSpam'><font color='red'>Off</font></a><br><font color='#05A7E6'>Copyright</font color='#ffffff'> © - OpBots<br>");

    //jq(window).load(() => {
    global.userscript.sniffer();
    //});

})(window, window.$);