☰

Gats.io - 🥷 Cheat Menu (Chandler) 🥷

try to take over the world!, can be updated at any time.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name         Gats.io - 🥷 Cheat Menu (Chandler) 🥷
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  try to take over the world!, can be updated at any time.
// @author       Chandler Ax
// @match        https://gats.io/
// @match        https://gats2.io/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=gats.io
// @license      No licence.
// @grant        none
// ==/UserScript==

(function () {
    "use strict";

    let server_size = 81;

    let ui = `
    <div class="player_container"></div>
    <div class="player_alert" style="display: none;">/</div>
    <style>
        .player_container {
            position: absolute;
            left: 1vh;
            top: 55%;
            transform: translate(0, -50%);
            width: 25vh;
            height: 45vh;
            background-color: rgba(250, 246, 246, 0.5);
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            border-radius: 8px;
            overflow: hidden;
            z-index: 2;
        }

        .player-list {
            overflow-y: auto;
            max-height: 100%;
        }

        .player-item {
            background-color: #fff;
            margin-bottom: 8px;
            padding: 10px;
            border-radius: 4px;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .player-item.me {
            background-color: #ffd700;
        }

        .attack-button {
            background-color: #ff4500;
            color: #fff;
            padding: 5px 10px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }

        .defense-button {
            background-color: #3498db;
            color: #fff;
            padding: 5px 10px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
    </style>
`;

    let element_ui = document.createElement("div");
    element_ui.innerHTML = ui;
    document.body.appendChild(element_ui);

    let canvas = document.getElementById("canvas");
    let canvas_1 = document.createElement("canvas");
    canvas_1.style.zIndex = 10;
    canvas_1.style.position = "absolute";
    document.getElementsByTagName("body")[0].appendChild(canvas_1);
    let canvas_ovarlay = canvas_1.getContext("2d");

    setInterval(() => {
        const player = RD.pool[c3];
        let enemies = Object.values(RD.pool).filter((player) => player.activated && player.id !== RD.pool[c3].id && (!player.teamCode || player.teamCode !== RD.pool[c3].teamCode) && player.hp > 0);

        if (player !== undefined && player.hp > 0) {
            RF.list[0].socket.send(`c, `);
            RF.list[0].socket.send(`c,{X: ${player.x} | Y: ${player.y}}`);
            const current_players = [];

            for (let i = 0; i < server_size; i++) {
                RD.pool[i].ghillie = 0;
                if (RD.pool[i].username !== "" && RD.pool[i].teamCode !== player.teamCode) {
                    current_players.push(RD.pool[i].username);
                }
                if (RD.pool[i].username !== "" && RD.pool[i].teamCode == player.teamCode) {
                    // player sn the same team
                }
            }

            const players_element = document.querySelector(".player_container");
            players_element.innerHTML = "";

            const player_element = document.createElement("div");
            player_element.className = "player-item me";
            player_element.textContent = `1. ${player.username}`;

            const defense_element = document.createElement("button");
            defense_element.className = "defense-button";
            defense_element.textContent = "Defense";
            defense_element.addEventListener("click", () => defense_me());

            player_element.appendChild(defense_element);
            players_element.appendChild(player_element);

            const playerList = document.createElement("div");
            playerList.className = "player-list";

            current_players.forEach((username, index) => {
                const player_element = document.createElement("div");
                player_element.className = "player-item";
                player_element.textContent = `${index + 2}. ${username}`;

                const attack_element = document.createElement("button");
                attack_element.className = "attack-button";
                attack_element.textContent = "Attack";
                attack_element.addEventListener("click", () => attack_player(username));

                player_element.appendChild(attack_element);
                playerList.appendChild(player_element);
            });
            player.isLeader = 1;
            player.isPremiumMember = 1;
            player.color.a = "gold";
            canvas_1.width = canvas.width;
            canvas_1.height = canvas.height;
            let plr_screen_position = c2.getRelPos(RD.pool[c3]);
            plr_screen_position.x *= j5;
            plr_screen_position.y *= j5;
            canvas_ovarlay.strokeStyle = "blue";
            canvas_ovarlay.lineWidth = 2;
            canvas_ovarlay.clearRect(0, 0, canvas_1.width, canvas_1.height);
            for (let i = 0; i < enemies.length; i++) {
                let diX = enemies[i].x - RD.pool[c3].x + plr_screen_position.x;
                let diY = enemies[i].y - RD.pool[c3].y + plr_screen_position.y;
                canvas_ovarlay.strokeRect(diX - 30 / 2, diY - 30 / 2, 30, 30);
                a57({ clientX: diX, clientY: diY });
            }
            players_element.appendChild(playerList);
        } else {
            canvas_1.width = 0;
            canvas_1.height = 0;
        }
    }, 30);

    window.addEventListener("wheel", function (event_packet) {
        let sens_base = 1;

        if (Math.sign(event_packet.deltaY) == 1) {
            j7 *= sens_base + 0.05;
            j8 *= sens_base + 0.05;
            a1();
        }

        if (Math.sign(event_packet.deltaY) == -1) {
            j7 *= sens_base - 1 + 0.95;
            j8 *= sens_base - 1 + 0.95;
            a1();
        }
    });

    let message_mem = true;

    const showMessage = (data) => {
        if (!message_mem) return;
        const message_element = document.querySelector(".player_alert");
        message_element.style.display = "block";
        message_element.innerHTML = data;
        message_mem = false;

        setTimeout(() => {
            message_element.style.display = "none";
            message_element.innerHTML = "/";
            message_mem = true;
        }, 3000);
    };

    const attack_player = (user) => {
        console.log(user);
    };

    const defense_me = () => {
        console.log(RD.pool[c3].username);
    };
})();