Shootem.io Bots

Bots for shootem.io that follow everything you do.

Terá de instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

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

Terá de instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Terá de instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Terá de instalar uma extensão como Tampermonkey para instalar este script.

Terá de instalar uma extensão de gestão de scripts de utilizador para instalar este script.

(Já tenho um gestor de scripts de utilizador, deixe-me instalá-lo!)

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

(Já tenho um gestor de estilos de utilizador, deixe-me instalá-lo!)

// ==UserScript==
// @name         Shootem.io Bots
// @namespace    https://leaked.wiki/
// @version      0.1
// @description  Bots for shootem.io that follow everything you do.
// @author       Sango
// @match        https://shootem.io/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const NUMBER_OF_BOTS = 19; // Number of mirrored WebSocket connections

    // Find the WebSocket object
    let originalWebSocket = window.WebSocket;
    // Override WebSocket constructor
    window.WebSocket = function(url, protocols) {
        // Create a new WebSocket instance
        let ws = new originalWebSocket(url, protocols);

        // Array to store mirrored WebSocket instances
        let mirrorWebSockets = [];

        // Create mirrored WebSocket instances
        for (let i = 0; i < NUMBER_OF_BOTS; i++) {
            mirrorWebSockets.push(new originalWebSocket(url));
        }

        // Function to log and mirror messages
        function logAndMirrorMessage(type, data) {
            mirrorWebSockets.forEach(mirrorWs => {
                mirrorWs.send(data);
            });

            // Decode if it's binary data
            if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {
                let decoder = new TextDecoder('utf-8');
                //console.log('Decoded:', decoder.decode(data));
            }
        }

        // Intercept received messages
        ws.addEventListener('message', function(event) {
            logAndMirrorMessage('Received', event.data);
            // You can do further processing or logging here
        });

        // Intercept sent messages
        let originalSend = ws.send;
        ws.send = function(data) {
            logAndMirrorMessage('Sent', data);
            originalSend.apply(ws, arguments);
        };

        // Return the WebSocket instance
        return ws;
    };
})();